首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

如何让三角形左转90度右转90度

2012-02-21 
求助:怎么让三角形左转90度右转90度 - C++ Builder / Windows SDK/API大家来帮帮我,我画了个三角形,请问怎

求助:怎么让三角形左转90度右转90度 - C++ Builder / Windows SDK/API
大家来帮帮我,我画了个三角形,请问怎么让它左转90度,右转90度,旋转的公式要怎么写?这样写行不?
POINT ptPolygons[3]={260,184,300,115,340,184};
hpOld=(HPEN)SelectObject(hdc,hpRed);
Polygon(hdc,ptPolygons,3);
SelectObject(hdc,hpGreen);

左转90度
  ptPolygons[0].x=?;
  ptPolygons[0].y=?;
  ptPolygons[1].x=?;
ptPolygons[1].y=?;
  ptPolygons[2].x=?;
ptPolygons[2].y=?;

右转90度
  ptPolygons[0].x=?;
  ptPolygons[0].y=?;
  ptPolygons[1].x=?;
ptPolygons[1].y=?;
  ptPolygons[2].x=?;
ptPolygons[2].y=?;



[解决办法]
帮顶
[解决办法]
三角形的旋转貌似需要找一个支点(内心、外心还是顶点),需要计算围绕该支点旋转后的顶点坐标,然后重画...
[解决办法]
右转90度不就是X和Y对调一下吗?左转90和右转一样,只是X值加个负号。
如果旋转中心不是0,0的话,先把所有的位置的XY值减去中心点XY值,旋转后再加回来就是。
[解决办法]
屏幕坐标系
左转
x=y
y=-x
右转
x=-y
y=x
[解决办法]
一般计算机图形学的书都有类似介绍。
[解决办法]
左转 右转 旋转的中心是什么?
[解决办法]
平面坐标变换??
x1 = x0 * cos(45) ?....
[解决办法]
坐标系呢
[解决办法]
晕,楼主你倒是说一下,你这个三角形的“旋转中心”啊。。

一个三角形上有那么多个点,你要围绕哪个点来旋转?????
[解决办法]
确实,需要确定旋转中心
[解决办法]
假设旋转中心为(xcenter,ycenter)
左转90度 
ptPolygons[0].x=(ptPolygons[0].y-ycenter)+xcenter; 
ptPolygons[0].y=-(ptPolygons[0].x-xcenter)+ycenter; 
ptPolygons[1].x=(ptPolygons[1].y-ycenter)+xcenter; 
ptPolygons[1].y=-(ptPolygons[1].x-xcenter)+ycenter; 
ptPolygons[2].x=(ptPolygons[2].y-ycenter)+xcenter; 
ptPolygons[2].y=-(ptPolygons[2].x-xcenter)+ycenter; 

右转90度 
ptPolygons[0].x=-(ptPolygons[0].y-ycenter)+xcenter;
ptPolygons[0].y=ptPolygons[0].x-xcenter+ycenter; 
ptPolygons[1].x=-(ptPolygons[1].y-ycenter)+xcenter;
ptPolygons[1].y=ptPolygons[1].x-xcenter+ycenter;
ptPolygons[2].x=-(ptPolygons[2].y-ycenter)+xcenter;
ptPolygons[2].y=ptPolygons[2].x-xcenter+ycenter;

我记得高中的书上写有,应该是学向量的那部分知识,而且还可以转任何角度的,早忘光了,你回去翻翻看吧

热点排行