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); }
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; }
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; }
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; }
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); }