图形旋转问题————
最近做个小绘图程序,为了画出任意方向的椭圆,我使用了
SetGrapicMode(HDC,GM_ADVANCED) ;和 SetWorldTransform(HDC,XFORM);
函数,实现平移和旋转;可是使用这两个函数之后,再画别的图形都会平移
和旋转。每办法改回原来的状态,实在和难受,
--------请各位大虾 给个办法 ---------------- 拜托 ???????
[解决办法]
你这两个函数没有用过,但是这样类似的问题遇到不少.就是SetGrapicMode的时候让它返回老的设置,用完之后再用SetGrapicMode把老的值设置回去.
[解决办法]
绘制时旋转,而不是旋转整个坐标系,只需自己实现一个绘制椭圆的函数即可,这个很简单
[解决办法]
画完后用SetWorldTransform设回来啊。
[解决办法]
1.数学问题
(1)椭圆的数学方程很容易写出来,写成参数的形式
x=a*sin(t)
y=b*cos(t)
(2)点(x0,y0)旋转s角变为
x1=x0*cos(s)-y0*sin(s)
y1=-x0*sin(s)+y0*cos(s)
2.计算机上曲线的显示
计算机上显示所谓曲线,只不过是极短的直线连接而成的
这两个问题解决了,剩下的是简单的写代码了
[解决办法]
效率绝对没问题
一般来说计算机每秒可画几百万条直线,足够了