Matrix.RotateAtPrepend(Double, Double, Double) 方法

定义

在此 Matrix 结构前面添加围绕指定点的指定角度的旋转。

public:
 void RotateAtPrepend(double angle, double centerX, double centerY);
public void RotateAtPrepend (double angle, double centerX, double centerY);
member this.RotateAtPrepend : double * double * double -> unit
Public Sub RotateAtPrepend (angle As Double, centerX As Double, centerY As Double)

参数

angle
Double

旋转角度(单位为度)。

centerX
Double

旋转中心的 x 坐标。

centerY
Double

旋转中心的 y 坐标。

示例

以下示例演示如何将旋转追加到 a Matrix.

private Matrix prependRotateExample()
{

    Matrix myMatrix = new Matrix(5, 10, 15, 20, 25, 30);

    // Prepend a 90 degree rotation about the origin.
    // myMatrix is now equal to  (15,20,-5,-10,25,30).
    myMatrix.RotatePrepend(90);

    return myMatrix;
}

private Matrix prependRotateAboutPointExample()
{

    Matrix myMatrix = new Matrix(5, 10, 15, 20, 25, 30);

    // Prepend a 90 degree rotation about the 
    // point (100,100). 
    // myMatrix is now equal to  (15,20,-5,-10,1025,2030).
    myMatrix.RotateAtPrepend(90, 100, 100);

    return myMatrix;
}

注解

在复合转换中,各个转换的顺序非常重要。 例如,如果首先旋转,然后缩放,然后翻译,则得到的结果不同于首次翻译,然后旋转,然后缩放。 一个原因是,旋转和缩放等转换在坐标系统的原点上完成。 缩放以原点为中心的对象会生成与缩放已移离原点的对象不同的结果。 同样,旋转位于原点的对象会产生不同于旋转已移离原点的对象的结果。

适用于