我有两点的图像,对齐方式如下:
|----------------|
| |
| . |
| |
| . |
| |
|----------------|
我的两个点都有X,Y坐标,我需要将图像旋转X度,因此看起来像这样:
|----------------|
| |
| |
| . . |
| |
| |
|----------------|
从根本上讲,它们彼此并排排列,这有什么数学意义? (C#中的代码示例会更好,但不是必需的)
最佳答案
这取决于要用作旋转“中心”的点。让我们将点称为上,左pointA,将点称为右,下pointB。如果要围绕点A旋转以使点B与其对齐,则以弧度为单位计算旋转角度将如下所示:
double angle = Math.Atan2(pointB.Y - pointA.Y, pointB.X - pointA.X);
我没有处理图像的方式,因此以下内容仅在使用System.Drawing.Graphics时适用:
myImage.TranslateTransform(-pointA.X, -pointA.Y);
myImage.RotateTransform((float) angle, MatrixOrder.Append);
myImage.TranslateTransform(pointA.X, pointA.Y, MatrixOrder.Append);
希望能帮助到你。
关于c# - 旋转图像数学(C#),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/472428/