如何从任意角度旋转一个窗体?(50分)

  • 主题发起人 主题发起人 qf0421
  • 开始时间 开始时间
qf0421:请自己提前问题或结束帖子!
 
自己旋转窗体,给出公式如下:<br>X1=X0*COS(A)+Y0*SIN(A);<br>Y1=X0*SIN(A)-Y0*COS(A);<br>(X1,Y1)为新坐标点,(X0,Y0)为原坐标点,A为旋转角度。<br>剩下的就简单了。
 
自己旋转窗体,给出公式如下:<br>X1=X0*COS(A)+Y0*SIN(A);<br>Y1=X0*SIN(A)-Y0*COS(A);<br>(X1,Y1)为新坐标点,(X0,Y0)为原坐标点,A为旋转角度。<br>剩下的就简单了。
 
我在NT下为什么不行?<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TempHDC:=getdc(form1.Handle);<br> TempForm.eM11 := cos(pi);<br> TempForm.eM12 := sin(pi);<br> TempForm.eM21 := -1 * sin(pi);<br> TempForm.eM22 := com(pi);<br> TempForm.eDx :=10;<br> TempForm.eDy :=0;<br> SetGraphicsMode(TempHDC,GM_ADVANCED);<br> if SetWorldTransform(TempHDC,TempForm) then ShowMessage('OK')<br> else ShowMessage('ERR');<br> Form1.Refresh;
 
qf0421:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
多人接受答案了。
 
后退
顶部