哪里有化石:计算机图形学编程

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 19:32:19
1.利用几何变换原理,实现生成直线箭头图形的c语言函数格式为
ARROW(IT,x1,y1,x2,y2,IL,IW)
其中IT=1画单箭头,=2画双向箭头,IL为箭头部分长度,IW为箭头部分宽度,(x1,y1)(x2,y2)有鼠标器在屏幕上确定

2.采用旋转及比例变换原理,编制并实现产生正方形螺旋线的c语言函数,使每个后缀的正方形被旋转某一个固定角度R,且被放大,同时使它完全包含前一个正方形

3.编写一算法,计算出Bezier曲线上某一处坐标值,该算法表示为BZSRF(M,N,CI,IFLG,U,W,P)
其中,M是沿u为常数的曲线上控制点数,在区间[3,6]内
N是沿w为常数的曲线上控制点数,[3,6]内
CI(M,N,3)是定义特征多边形的控制定点的坐标输入矩阵
IFLG定义曲面是开曲面或闭曲面的数学
如为开曲面,则IFLG=0
如u为常数的曲线是闭合的,=1
如w为常数的曲线是闭合的。=2
U,W是参数u,w的输入值
p(3)是该点的坐标值x,y,z
个人实力不济
请给我发源程序
谢谢

你可以用MS VC++ 编译器,写C程序,调用openGL 做位移和旋转变换。

位移
void glTranslated ( double x , double y , double z );
void glTranslatef ( float x , float y , float z );
旋转:
void glRotated ( double angle , double x , double y , double z );
void glRotatef ( float angle , float x , float y , GLfloat z );

贝塞尔曲线问题嘛,绘曲线曲面,也可用openGL,里面有多种方法,例如 glDrawArrays ( mode , first , count )
例如 glBegin ( mode )
其他库程序见
例如 gluNurbsCurve(。。)
http://pyopengl.sourceforge.net/documentation/manual/index.html

如果不想画图,想计算拟合点座标,自己用公式算也很简单。
理论与程序见:
http://www.rush3d.com/reference/opengl-redbook-1.1/chapter11.html