题目:
已知螺旋线方程:
z=r*cos(t*k);
x=r*sin(t*k);
y=300*t;
(k=m*3.14/180*360 m=10)
r为半径,t为时间,k为螺旋线的圈数控制量
分别采用红、绿、蓝三色画出宽度为4且圈数是10的螺旋线
沿X,Y,Z三轴正向的平行投影图形。
实现代码:
void CDrawSpringView::OnDraw(CDC* pDC)
{
CDrawSpringDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
double k = 10 * 3.14 / 180 * 360,t = 0.0;
CPoint pt1[500],pt2[500],pt3[500];
CPen redPen,greenPen,bluePen;
redPen.CreatePen(PS_SOLID,4,RGB(255,0,0));
greenPen.CreatePen(PS_SOLID,4,RGB(0,255,0));
bluePen.CreatePen(PS_SOLID,4,RGB(0,0,255));
for(int i = 0; i < 500; i++)
{
pt1[i].x = (long)(30 * cos(t * k));
pt1[i].y = (long)(30 * sin(t * k));
pt2[i].x = (long)(30 * sin(t * k));
pt2[i].y = (long)(300 * t);
pt3[i].x = (long)(300 * t);
pt3[i].y = (long)(30 * cos(t * k));
t += 0.002;
}
pDC->SetViewportOrg(100,100);
pDC->SelectObject(redPen);
pDC->Polyline(pt1,500);
redPen.DeleteObject();
pDC->SetViewportOrg(200,50);
pDC->SelectObject(greenPen);
pDC->Polyline(pt2,500);
greenPen.DeleteObject();
pDC->SetViewportOrg(240,100);
pDC->SelectObject(bluePen);
pDC->Polyline(pt3,500);
bluePen.DeleteObject();
}
分享到:
相关推荐
吉林大学计算机图形学实验课参考代码,用MFC实现了绝大多数的功能要求(有点瑕疵),包括基本图元的绘制(各自设置边界颜色),多边形填充(橡皮线 学号填充 学号和边界颜色设置),三维变换(一维透视 绕轴旋转平移...
华中科技大学计算机系的图形学上机实验报告,包涵两个实验
计算机图形学上机实验2-交互实现多边形绘画并填充.doc
计算机图形学 边填充算法实现代码,运用了MFC模块,使填充过程直观易学
详细的计算机图形学的上机报告,共分为四个报告,内容详细,共大家参考
计算机图形学的金刚石图案设计代码实现,将半径为r的圆周n等份,然后用直线将各等分点隔点相连,形成的图案称为“金刚石”图案,试编程实现
吉林大学图形学所有上机实验的代码 完整可直接运行 代码完整度很高
一笔绘制金刚石图案,基于easyx,一笔画图形
计算机图形学上机作业 实现二维图形界面的 各种裁剪情况
计算机图形学时老师让做的上机作业,一些简单算法程序,包括画线,圆,动画和坐标变换等
用VS2005开发的计算机图形学所有上机作业的演示程序,包括可执行程序、源文件和报告
计算机图形学上机实验.rar bike image
本程序用C语言实现了计算机图形学中各种基本图形第实现算法,有直线、圆、椭圆,还有二次曲线的各种实现算法
计算机图形学 DDA算法 Bresenham算法 画圆 画椭圆 算法及用例实现 VC++项目
计算机图形学试题及答案.pdf
计算机图形学基础模拟试题(二)答案.pdf
计算机图形学山科往年考试试卷