C# 矩形旋转效果
VS2010旗舰版需要达到的效果:当我按下鼠标时,黄色的矩形以黑的点为中心顺时针旋转,速度为1MIN一圈,松开鼠标就停止不动。GDI+画矩形,按下鼠标触发事件都简单,关键...
VS2010 旗舰版
需要达到的效果:当我按下鼠标时,黄色的矩形 以 黑的点为中心 顺时针旋转,速度为1MIN 一圈,松开鼠标就停止不动。
GDI+ 画矩形,按下鼠标触发事件都简单,关键是这个旋转效果,求高手提供一下思路。有关键部分代码就更好了。 展开
需要达到的效果:当我按下鼠标时,黄色的矩形 以 黑的点为中心 顺时针旋转,速度为1MIN 一圈,松开鼠标就停止不动。
GDI+ 画矩形,按下鼠标触发事件都简单,关键是这个旋转效果,求高手提供一下思路。有关键部分代码就更好了。 展开
3个回答
展开全部
矩形的每个顶点分别围绕以黑点为圆心,半径为顶点到黑点的距离的圆旋转,每次旋转(即重绘)的角度为 360 / 刷新频率。
追问
我每次设置的矩形都是其 左上角的 坐标 加上 长宽,四个点创建矩形,能给一句话的代码示例吗?
追答
设圆心(黑点)为O(Ox,Oy),左上角坐标为A(Ax,Ay),按下鼠标后不断计算矩形旋转后的左上角坐标A‘并刷新,设旋转角度为a,(则a = 360度 * 刷新频率 );那么圆点坐标、A点坐标和旋转角度a都知道了,你根据初中数学知识就可以计算出A’的坐标。用C#实现是很简单的。
只能给你思路,不好意思,不可能给你写代码。
实现这个功能当然还有其他方法。
四个顶点需要分别计算,而且坐标需要用坐标来表示,不能像你那样只表示左上角的点坐标然后给出长和宽。你可以想想为什么。
a = 360度 * 刷新频率,之前搞错了。
展开全部
使用Graphics的RotateTransform 方法
追问
如何设置这个旋转中心?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
追问
这个貌似是网页吧~~,我做的是应用程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询