[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]
题目:
已知螺旋线方程:
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]