关于点绕点旋转

weeksun23 2011-01-16 01:05:38
下面这个函数实现对点pt绕center逆时针旋转72°,那么顺时针旋转的话应该怎么修改呢??另外这个函数的原理是什么?求解!!

public Point roate(Point center, Point pt)
{
int x = (int)(center.X + (pt.X - center.X) * Math.Cos(72.0 * Math.PI / 180) - (pt.Y - center.Y) * Math.Sin(72.0 * Math.PI / 180));
int y = (int)(center.Y + (pt.X - center.X) * Math.Sin(72.0 * Math.PI / 180) + (pt.Y - center.Y) * Math.Cos(72.0 * Math.PI / 180));
return new Point(x, y);
}
...全文
76 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2011-01-16
  • 打赏
  • 举报
回复
static PointF Rotate(PointF center, PointF point, float angleInDegree)
{
System.Drawing.Drawing2D.Matrix matrix = new System.Drawing.Drawing2D.Matrix();
matrix.Rotate(angleInDegree); // 逆时针旋转的矩阵

PointF[] points = { new PointF( point.X - center.X, point.Y - center.Y) };
matrix.TransformPoints( points );
return new PointF(center.X + points[0].X, center.Y + points[0].Y);
}

weeksun23 2011-01-16
  • 打赏
  • 举报
回复
自己顶起!!

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧