问题描述
- 图形学大神看过来,求大神指点
-
一、实现抛物线算法的C语言程序段如下:
Par(int xs,int ys,int xm,int ym,int xe,int ye) //已知起点、中点和终点三个控制点的坐标
{
double t,dt,ax,ay,bx,by,cx,cy;
int n,i;
ax=xe-2*xm+xs;
ay=ye-2*ym+ys;
bx=2.0*(xm-xs);
by=2.0*(ym-ys);
cx=xs; cy=ys;
n=sqrt(ax*ax+ay*ay);
n=sqrt(n*100.0);
moveto(xs,ys);
dt=1.0/n; t=0;
for (i=0;i<=n; i++)
{
lineto((int)(ax*t*t+bx*t+cx),(int)( ay*t*t+by*t+cy));
t=t+dt;
}
lineto(xe,ye);
}
二、仔细阅读上述代码,理解之,并在每行后加注注释,说明每一条语句的功能;
三、在VC6.0下,新建工程“工程名:parabola”,根据上述的C代码,改写之(同样要求每条语句要有详细注释),添加至“parabola”工程的OnDraw()函数中,绘制出如图1所示的抛物线:图1 抛物线
解决方案
这个就是算坐标一个点一个线画出来的。注释好麻烦啊。。。
时间: 2025-01-06 19:36:26