画正方体``````?

Q3277631 2012-11-27 02:47:08
{
int flag,r,h;
double pi,x,y,z,cx,cy,thx,thy,th;
double xw,yw,zw;

pi=3.14159;
cx=320;//起始位置
cy=180;
int ed=2000,eh=100,od=400,hl=1;

h=80; thy=0.2;r=100;n=4;thx=0.2;
flag=0;nn=1;

for(th=0;th<=2*pi+0.1;th+=2*pi/n)
{
x=r*cos(th); y=h; z=r*sin(th);

//Call rot_y: Call rot_x
zw=z; xw=x;
x=zw*cos(thy)-xw*sin(thy);
z=zw*sin(thy)+xw*cos(thy);

yw=y; zw=z;
y=yw*cos(thx)-zw*sin(thx);
z=yw*sin(thx)+zw*cos(thx);

if(ps==1){
x=x*ed/(ed-od-z);
y=(y*ed-eh*(od+z))/(ed-od-z);
}
//ax[nn]=x; ay[nn]=y; az[nn]=z;
XP[nn]=x; YP[nn]=y; ZP[nn]=z;
nn=nn+1;
}

flag=0;nn=1;

for(th=0;th<=2*pi+0.1;th+=2*pi/n){
x=r*cos(th); y=-h; z=r*sin(th);

//Call rot_y: Call rot_x
zw=z; xw=x;
x=zw*cos(thy)-xw*sin(thy);
z=zw*sin(thy)+xw*cos(thy);

yw=y; zw=z;
y=yw*cos(thx)-zw*sin(thx);
z=yw*sin(thx)+zw*cos(thx);

if(ps==1){
x=x*ed/(ed-od-z);
y=(y*ed-eh*(od+z))/(ed-od-z);}
//bx[nn]=x; by[nn]=y; bz[nn]=z;
XP[nn+4]=x; YP[nn+4]=y; ZP[nn+4]=z;
nn=nn+1;
}

CP[1] = 1;CP[2] = 1;CP[3] = 1; CP[4] = 1;CP[5] = 1;CP[6] = 1;CP[7] = 1;CP[8] = 1;

}


实在是看不懂for循环中的操作,
zw=z; xw=x;
x=zw*cos(thy)-xw*sin(thy);
z=zw*sin(thy)+xw*cos(thy);
yw=y; zw=z;
y=yw*cos(thx)-zw*sin(thx);
z=yw*sin(thx)+zw*cos(thx);

if(ps==1){
x=x*ed/(ed-od-z);
y=(y*ed-eh*(od+z))/(ed-od-z);

这几句到底什么意思?
...全文
180 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
狂奔的Ant 2012-11-29
  • 打赏
  • 举报
回复
还是先去看原理吧
Tiger-3D 2012-11-29
  • 打赏
  • 举报
回复
我勒个神,这……
快乐鹦鹉 2012-11-28
  • 打赏
  • 举报
回复
这样算来算去的代码,你就得先看原理才行了
qlizhang 2012-11-28
  • 打赏
  • 举报
回复
正方体的体轴系坐标与观察系坐标转换
Eleven 2012-11-28
  • 打赏
  • 举报
回复
先需要知道该算法是怎样的~
看不见的裂痕 2012-11-28
  • 打赏
  • 举报
回复
最好去询问下出处的人,确实挺有难度的。 帮顶了

19,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧