有没有可以帮我把这段代码运行 截个图给我鸭
vc吧
全部回复
仅看楼主
level 1
三叔😈 楼主
class BezierMath
{
public:
BezierMath(void);
~BezierMath(void);
CPoint Bezier(CPoint point_0,CPoint point_1,double t);
CPoint Bezier(CPoint point_0,CPoint point_1,CPoint point_2,double t);
CPoint Bezier(CPoint point_0,CPoint point_1,CPoint point_2,CPoint point_3,double t);
};
CPoint BezierMath::Bezier(CPoint point_0,CPoint point_1,double t)
{
double dx=0.0;
double dy=0.0;
dx=(1-t)*point_0.x+t*point_1.x;
dy=(1-t)*point_0.y+t*point_1.y;
CPoint tempPoint((int)dx,(int)dy);
rentuen tempPoint;
}
CPoint BezierMath::Bezier(CPoint Bezier(CPoint point_0,CPoint point_1,CPoint point_2,double t)
{
double dx=0.0;
double dy=0.0;
dx=(point_2.x-2*point_1.x+point_0.x)*(t*t)+2*(point_1.x-point_0.x)*t+point_0.x;
dy=(point_2.y-2*point_1.y+point_0.y)*(t*t)+2*(point_1.y-point_0.y)*t+point_0.y;
CPoint tempPoint((int)dx,(int)dy);
return tempPoint;
}
CPoint BezierMath::Bezier(CPoint point_0,CPoint point_1,CPoint point_2,CPoint point_3,double t)
{
double dx=0.0;
double dy=0.0;
dx=(1-t)*(1-t)*(1-t)*point_0.x+3*t*(1-t)*(1-t)*point_1.x+3*t*t*(1-t)
*point_2.x+t*t*t*point_3.x;
dy=(1-t)*(1-t)*(1-t)*point_0.y+3*t*(1-t)*(1-t)*point_1.y+3*t*t*(1-t)
*point_2.y+t*t*t*point_3.y;
CPoint tempPoint((int)dx,(int)dy);
return tempPoint;
void CBezierView::DrawOneBezier(void)
{
CleanWindow();
double t=0.0;
double dt=0.5;
BezierMath Bezier;
CDC*pDC=GetDC();
CPoint tempPoint=point_1;
CPoint oldPoint=point-0;
while(t<=1)
{
tempPoint=Bezier.Bezier(point_0,point_1,t);
pDC->MoveTo(oldPoint);
pDC->LinetO(tempPoint);
oldPoint=tempPoint;
t+=dt;
}
}
void CBezierView::DrawTwoBezier(void)
{
CleanWindow();
double t =0.0;
double dt=0.001;
BezierMath Bezier;
CDC*pDC=GetDC();
CPoint tempPoint=point_1;
CPoint oldPoint=point_0;
while(t<=1)
{
tempPoint=bezier.Bezier(point_0,point_1,point_2,t);
pDC->MoveTo(oldPoint);
pDC->LineTo(tempPoint);
oldPoint=tempPoint;
t+=dt;
}
}
void CBezierView::DrawThreeBezier(void)
{
CleanWindow();
double t=0.0;
double dt=0.02;
BezierMath bezier;
CDC*pDC=GetDC();
CPoint tempPoint=point_1;
CPoint oldPoint=point_0;
while(t<=1)
{
tempPoint=bezier.Bezier(point_0,point_1,point_2,point_3,t);
pDC->MoveTo(oldPoint);
pDC->LimeTo(tempPoint);
oldPoint=tempPoint;
t+=dt;
}
}
void CBezierView::CleanWindow(void)
{
CRect rect;
GetClientRect(&rect)
int width=rect.Width();
int height=rect.Height();
CDC*pDC=GetDC();
CPen pen(PS_SOLID,1,RGB(255,255,255));
CBrush brush(RGB(255,255,255));
pDC->SelectObject(pen);
pDC->FillRect(CRect(0,0,width,height),&brush);
}
2018年12月08日 13点12分 1
level 1
三叔😈 楼主
拜托了 我没有软件可以运行
2018年12月08日 13点12分 2
[乖]
2018年12月08日 13点12分
1