图形学上机考试题实现代码

本文介绍了一种使用C++编程语言绘制特定参数下螺旋线沿X、Y、Z轴正向平行投影的方法。通过设定螺旋线的半径、时间和圈数等参数,利用不同颜色的线条表示出螺旋线在三维坐标系中各个轴方向上的投影效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[code]

题目:

已知螺旋线方程:
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();
}


[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值