更改对象的旋转点

时间:2014-05-17 20:58:55

标签: rotation

我有一个对象,我可以使用GDI +和变换来旋转和调整大小等。可以拖动旋转点以使其处于任何位置。调整大小&旋转工作正常,除了一个功能。

我正在努力解决如何处理变换的问题是如何拍摄一个已经围绕旋转点旋转的物体,然后移动该旋转点并使物体保持在旋转点上。当前位置(只是旋转点已移动)。 Visio做得很好!

我认为左上角的原点在物体上变化(未旋转时)或角度在变化?

如果可能的话,任何人都可以提供一个例子,因为这让我疯了;我确信它很简单但无法在此论坛中找到解决方案。有人在那之前做过吗?

' Setup Variables
Dim OrigLocation as Point = .....
Dim OrigRotationAt as PointF = .....
Dim NewRotationAt as PointF = .....
Dim Rotation as Single = .....

' Matrix Transformation
Dim TransPoints As Point() = New Point() {OrigLocation}
Dim mat As New Matrix
mat.Translate(OrigLocation.X, OrigLocation.Y, MatrixOrder.Append)
mat.RotateAt(Rotation, OrigRotationAt, MatrixOrder.Append)
mat.RotateAt(-Rotation, NewRotationAt, MatrixOrder.Append)
mat.Translate(-OrigLocation.X, OrigLocation.Y, MatrixOrder.Append)
mat.TransformPoints(TransPoints)
mat.Dispose()

' Set New Location
Dim NewLocation as Point = TransPoints(0)

此致

Julian Wigman

0 个答案:

没有答案
相关问题