(备忘)伪代码实现正五边形和正六边形

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

static const float pi = 3.14159265359;

//cos函数和sin函数的参数传递的是弧度,所以要把角度转换成弧度。

//正五边形需要计算的角度。

static const float fcos18 = cos((float)18/180*pi);

static const float fsin18 = sin((float)18/180*pi);

static const float fcos54 = cos((float)54/180*pi);

static const float fsin54 = sin((float)54/180*pi);

//正六边形需要计算的角度。

static const float fcos30 = cos((float)30/180*pi);

static const float fsin30 = sin((float)30/180*pi);

//正五边形和正六边形均需要计算的角度

static const float fcos90 = cos((float)90/180*pi);

static const float fsin90 = sin((float)90/180*pi);

//fR代表“外接圆半径”

//x向右为正(右边),反向为负(左边)

//y向下为正(下边),反向为负(上边)

//正五边形顶点画法

m_point[0].m_fx = fR*fcos18+m_point[8].m_fx;

m_point[0].m_fy = fR*(-fsin18)+m_point[8].m_fy;

m_point[1].m_fx = fR*fcos90+m_point[8].m_fx;

m_point[1].m_fy = fR*(-fsin90)+m_point[8].m_fy;

m_point[2].m_fx = fR*(-fcos18)+m_point[8].m_fx;

m_point[2].m_fy = fR*(-fsin18)+m_point[8].m_fy;

m_point[3].m_fx = fR*(-fcos54)+m_point[8].m_fx;

m_point[3].m_fy = fR*(fsin54)+m_point[8].m_fy;

m_point[4].m_fx = fR*(fcos54)+m_point[8].m_fx;

m_point[4].m_fy = fR*(fsin54)+m_point[8].m_fy;

int iStar = 5;

//正六边形顶点画法

m_point[0].m_fx = fR*fcos30+m_point[8].m_fx;

m_point[0].m_fy = fR*(-fsin30)+m_point[8].m_fy;

m_point[1].m_fx = fR*fcos90+m_point[8].m_fx;

m_point[1].m_fy = fR*(-fsin90)+m_point[8].m_fy;

m_point[2].m_fx = fR*(-fcos30)+m_point[8].m_fx;

m_point[2].m_fy = fR*(-fsin30)+m_point[8].m_fy;

m_point[3].m_fx = fR*(-fcos30)+m_point[8].m_fx;

m_point[3].m_fy = fR*(fsin30)+m_point[8].m_fy;

m_point[4].m_fx = fR*(fcos90)+m_point[8].m_fx;

m_point[4].m_fy = fR*(fsin90)+m_point[8].m_fy;

m_point[5].m_fx = fR*(fcos30)+m_point[8].m_fx;

m_point[5].m_fy = fR*(fsin30)+m_point[8].m_fy;

int iStar = 6;

//伪代码做顶点连线

for (int i=0;i<iStar;++i)

{

line(m_point[8].m_fx,m_point[8].m_fy,m_point[i].m_fx,m_point[i].m_fy);

if (i == (iStar-1))

{

line(m_point[i].m_fx,m_point[i].m_fy,m_point[0].m_fx,m_point[0].m_fy);

return ;

}

else

line(m_point[i].m_fx,m_point[i].m_fy,m_point[i+1].m_fx,m_point[i+1].m_fy);

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航