如何实现直线绕某点旋转,其他图元保持不动? 场景中 三个以上 三角形,怎么实现 只控制一个三角形围着其一个顶点旋转,而其他三角形保持不变!初步思路:1.通过目标三角形坐标变化控制,但实现好像有点难, 如何将 旋转角度 设置为参数,2.视角坐标系变化, 如此 导致 其他三角形也转动!! 无法实现其他方法暂时没有一点思路~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //方法如下: float x1,y1,x2,y2,x3,y3;//三个顶点坐标 float len12,len13,len23;//三边长度 float th12,th13,th23; //三个夹角 float th; //旋转角度 //这里请赋初始值,并计算长度和夹角; //假设围绕x1,y1转 for(th=0;th<6.28;th+=0.00314) { x2=x1+len12*cos(th); y2=y1+len12*sin(th); x3=x1+len13*cos(th+th12); x3=y1+len13*sin(th+th12); //按新计算的数据画三角形 }//QQ:7199963 这个方法是不是太麻烦了,如果是一个 多边形 不是三角形,运算量岂不是很大? 而且 主要是 设置的参数就是 3n 个变量~~想想 能不能简化 ,得到同样的效果~~我先试试,谢谢gz~~ 楼主注意:我上边的循环是演示了旋转一周的动态过程,是动画的如果只旋转一个固定角度,直接让th=xxx就行了,不用循环当涉及到很多点的时候包括不规则图像等计算的原理是差不多的.但数据多的时候,其实是把所有数据形成一个矩阵,直接用矩阵运算 是的,是图形学的问题这种计算旋转点的方法其实是极坐标的表示方法。比如:(x0,y0)为圆心,r为半径。圆的方程是:(x-x0)*(x-x0)+(y-y0)*(y-y0)=r*r;这样表示很难画圆某点相对与(x0,y0)的距离是r则该点的极坐标是:x=x0+r*cos(th);y=y0+r*sin(th);当th从0到6.28每格一个角度画一个点,不就是圆了吗?这其实就是旋转的原理。 (难)MsgWaitForMultipleObjects 与 消息处理 字符串格式问题!求助!! Accept函数小问题, passthru 中得到 数据包内容??? 关闭MFC模式对话框的问题 怎么在对话框中显示一gif格式的广告条? TOOLBAR的问题 怎样分离时间字符串?提取2002-10-23中的年月日,请具体针对这个字符串说明 如何在桌面上输出一段透明的字? VC树控件设置iIntegral为2的滚动条问题 求教 mfc怎么加载sdk的dll
float x1,y1,x2,y2,x3,y3;//三个顶点坐标
float len12,len13,len23;//三边长度
float th12,th13,th23; //三个夹角
float th; //旋转角度
//这里请赋初始值,并计算长度和夹角;
//假设围绕x1,y1转
for(th=0;th<6.28;th+=0.00314)
{
x2=x1+len12*cos(th);
y2=y1+len12*sin(th);
x3=x1+len13*cos(th+th12);
x3=y1+len13*sin(th+th12); //按新计算的数据画三角形
}//QQ:7199963
这个方法是不是太麻烦了,
如果是一个 多边形 不是三角形,运算量岂不是很大?
而且 主要是 设置的参数就是 3n 个变量~~想想 能不能简化 ,得到同样的效果~~我先试试,谢谢gz~~
我上边的循环是演示了旋转一周的动态过程,是动画的
如果只旋转一个固定角度,直接让th=xxx就行了,不用循环当涉及到很多点的时候包括不规则图像等计算的原理是差不多的.
但数据多的时候,其实是把所有数据形成一个矩阵,直接用矩阵运算
这种计算旋转点的方法其实是极坐标的表示方法。比如:(x0,y0)为圆心,r为半径。
圆的方程是:(x-x0)*(x-x0)+(y-y0)*(y-y0)=r*r;
这样表示很难画圆某点相对与(x0,y0)的距离是r
则该点的极坐标是:
x=x0+r*cos(th);
y=y0+r*sin(th);
当th从0到6.28每格一个角度画一个点,不就是圆了吗?
这其实就是旋转的原理。