Пример #1
0
void CGOView::OnMouseMove(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	SetCursor(m_Cursor);//设置使用光标资源
	pointCurrent=point;
	CDC* cdc = this->GetDC();
	if ((m_LButtonDown && m_DrawType == 1))
	{
		int radius = (int)sqrt(1.0*(pointEnd.x - pointStart.x)*( pointEnd.x - pointStart.x) + (pointEnd.y - pointStart.y)*( pointEnd.y - pointStart.y));
		midPointCircle(cdc,(int) pointStart.x,(int) pointStart.y, radius, RGB(255, 255, 255));
	
		radius = (int)sqrt(1.0*(pointCurrent.x - pointStart.x)*( pointCurrent.x - pointStart.x) + (pointCurrent.y - pointStart.y)*( pointCurrent.y - pointStart.y));
		midPointCircle(cdc,(int) pointStart.x,(int) pointStart.y, radius, RGB(255, 0, 0));

		pointEnd = pointCurrent;
	}
	if ((m_LButtonDown && m_DrawType==2))
	{
		bresenhamEllipse(cdc, (int)pointStart.x, (int)pointStart.y, (int)abs(pointEnd.x - pointStart.y), (int)abs(pointEnd.y - pointStart.y), RGB(255, 255, 255));
	
		bresenhamEllipse(cdc, (int)pointStart.x, (int)pointStart.y, (int)abs(pointCurrent.x - pointStart.y), (int)abs(pointCurrent.y - pointStart.y), RGB(0, 255, 0));
	
		pointEnd = pointCurrent;
	}
	
	CView::OnMouseMove(nFlags, point);
}
Пример #2
0
int main()
{
    int gd=DETECT, gm;
    int r, theta;
    
    printf("Radio: ");
    scanf("%d",&r);
    
    printf("Theta: ");
    scanf("%d",&theta);
    
    initgraph(&gd, &gm, NULL);
    midPointCircle(r, theta);
    getch();
    closegraph();
    return 0;
}
Пример #3
0
int main()
{
	int gd=DETECT, gm;
	int radius, angle;
	
	printf("Entre el radio del arco: ");
	scanf("%d",&radius);

	printf("Entre el ángulo del arco: ");
	scanf("%d",&angle);
	
	initgraph(&gd, &gm, NULL);
	
	midPointCircle(radius, angle);
	
	getch();
	closegraph();
	
	return 0;
}
Пример #4
0
int main()
{
	int gd=DETECT, gm;
	int radius;
	
	int puntos[10000];
	int count=0;
	
	printf("Entre el radio de la circunferencia: ");
	scanf("%d",&radius);
	
	initgraph(&gd, &gm, NULL);
	
	count = midPointCircle(radius, puntos);
	
	generaArchivo(puntos, count);
	
	getch();
	closegraph();
	
	return 0;
}
Пример #5
0
void CGOView::OnLButtonUp(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	SetCursor(m_Cursor);//设置使用光标资源
	ReleaseCapture();//释放鼠标
	CDC* cdc = this->GetDC();
	pointEnd = point;
	if ((m_DrawType == 1))
	{
		int radius = (int)sqrt(1.0*(pointEnd.x - pointStart.x)*( pointEnd.x - pointStart.x) + (pointEnd.y - pointStart.y)*( pointEnd.y - pointStart.y));
		midPointCircle(cdc,(int) pointStart.x,(int) pointStart.y, radius, RGB(255, 0, 0));
	}
	else if((m_DrawType==2))
	{
		bresenhamEllipse(cdc, (int)pointStart.x, (int)pointStart.y, (int)abs(pointEnd.x - pointStart.y), (int)abs(pointEnd.y - pointStart.y), RGB(0, 255, 0));
	}
	else
	{
	}
	m_LButtonDown = false;//设置鼠标左键按下
	CView::OnLButtonUp(nFlags, point);
}