谢啦

解决方案 »

  1.   


    void CxxxDlg::OnPaint()
    {
    CRect rect;
    GetClientRect(&rect);
    const int n=5000; CPaintDC dc(this);
    CPen pen(0,1,RGB(0,0,255));
    CPen* pOldPen=dc.SelectObject(&pen); int nWidth=rect.Width();
    int nHeight=rect.Height();
    dc.SetViewportOrg(nWidth/2,nHeight-30);

    POINT pt[2*n];
    for(int i = -1*n; i < n; i++)
    {
    long cx = (i * nWidth / 2 * 32) / n;
    long cy = cx * cx / (-32);
    pt[i + n].x = cx;
    pt[i + n].y = cy;
    }
    dc.Polyline(pt,2*n);

    CDialog::OnPaint();
    }
    }
      

  2.   

    void CChildView::OnPaint() 

    CPaintDC dc(this); // 用于绘制的设备上下文 int x1 = 100; 
    int y1 = 100; 
    int x2 = 200; 
    int y2 = 200; 
    int x3 = 300; 
    int y3 = 150; double a = (double)(y1*x2 + y2*x3 + y3*x1 - y3*x2 - y2*x1 - y1*x3) / (x1*x1*x2 + x2*x2*x3 + x3*x3*x1 - x3*x3*x2 - x2*x2*x1 - x1*x1*x3); double b = -(double)(y1*x2*x2 + y2*x3*x3 + y3*x1*x1 - y3*x2*x2 - y2*x1*x1 - y1*x3*x3) / (x1*x1*x2 + x2*x2*x3 + x3*x3*x1 - x3*x3*x2 - x2*x2*x1 - x1*x1*x3) ; double c = (double)(y1*x2*x2*x3 + y2*x3*x3*x1 + y3*x1*x1*x2 - y3*x2*x2*x1 - y2*x1*x1*x3 - y1*x3*x3*x2) / (x1*x1*x2 + x2*x2*x3 + x3*x3*x1 - x3*x3*x2 - x2*x2*x1 - x1*x1*x3) ; for(int x=100;x <1024;x+=1) 

    double y = a*x*x + b*x + c; 
    dc.SetPixel(x,y,RGB(0,0,0)); 

    } 改成画线会更好一些 
      

  3.   

    请问:hhhh63 int x1 = 191; 
    int y1 = 398; 
    int x2 = 390; 
    int y2 = 312; 
    int x3 = -8; 
    int y3 = 311; 这种情况下,抛物线的Y坐标会明显偏移很远,这种情况怎么解决?
      

  4.   

    目前的抛物线计算公式是不是有BUG呢?
    例如将参数改成下面数据将无法正常绘制。
    int x1 = 191; 
    int y1 = 398; 
    int x2 = 390; 
    int y2 = 312; 
    int x3 = -8; 
    int y3 = 311; 

    double a = (double)(y1*x2 + y2*x3 + y3*x1 - y3*x2 - y2*x1 - y1*x3) / (x1*x1*x2 + x2*x2*x3 + x3*x3*x1 - x3*x3*x2 - x2*x2*x1 - x1*x1*x3); 

    double b = -(double)(y1*x2*x2 + y2*x3*x3 + y3*x1*x1 - y3*x2*x2 - y2*x1*x1 - y1*x3*x3) / (x1*x1*x2 + x2*x2*x3 + x3*x3*x1 - x3*x3*x2 - x2*x2*x1 - x1*x1*x3) ; 

    double c = (double)(y1*x2*x2*x3 + y2*x3*x3*x1 + y3*x1*x1*x2 - y3*x2*x2*x1 - y2*x1*x1*x3 - y1*x3*x3*x2) / (x1*x1*x2 + x2*x2*x3 + x3*x3*x1 - x3*x3*x2 - x2*x2*x1 - x1*x1*x3) ; 

    for(int x=100;x <1024;x+=1) 

    double y = a*x*x + b*x + c; 
    pDC->SetPixel(x,y,RGB(0,0,0)); 
    } 甚至改成如下也都不能工作,好像只能限制在一个很小区间内,甚至整体移动了以后也无法正常工作。
    int x1 = 183; 
    int y1 = 373; 
    int x2 = 330; 
    int y2 = 553; 
    int x3 = 553; 
    int y3 = 229; 
      

  5.   

    目前的抛物线计算公式是不是有BUG呢?
    例如将参数改成下面数据将无法正常绘制。
    int x1 = 191; 
    int y1 = 398; 
    int x2 = 390; 
    int y2 = 312; 
    int x3 = -8; 
    int y3 = 311; 

    double a = (double)(y1*x2 + y2*x3 + y3*x1 - y3*x2 - y2*x1 - y1*x3) / (x1*x1*x2 + x2*x2*x3 + x3*x3*x1 - x3*x3*x2 - x2*x2*x1 - x1*x1*x3); 

    double b = -(double)(y1*x2*x2 + y2*x3*x3 + y3*x1*x1 - y3*x2*x2 - y2*x1*x1 - y1*x3*x3) / (x1*x1*x2 + x2*x2*x3 + x3*x3*x1 - x3*x3*x2 - x2*x2*x1 - x1*x1*x3) ; 

    double c = (double)(y1*x2*x2*x3 + y2*x3*x3*x1 + y3*x1*x1*x2 - y3*x2*x2*x1 - y2*x1*x1*x3 - y1*x3*x3*x2) / (x1*x1*x2 + x2*x2*x3 + x3*x3*x1 - x3*x3*x2 - x2*x2*x1 - x1*x1*x3) ; 

    for(int x=100;x <1024;x+=1) 

    double y = a*x*x + b*x + c; 
    pDC->SetPixel(x,y,RGB(0,0,0)); 
    } 甚至改成如下也都不能工作,好像只能限制在一个很小区间内,甚至整体移动了以后也无法正常工作。
    int x1 = 183; 
    int y1 = 373; 
    int x2 = 330; 
    int y2 = 553; 
    int x3 = 553; 
    int y3 = 229; 
      

  6.   

    对数螺旋线已经有人帮忙解决一半了,就只差一点点小问题了,你能帮忙解决那就最好不过了。
    问题再这里。
    http://topic.csdn.net/u/20080821/09/af4a817d-6405-4854-ba5c-a5b747aabcfc.html