在不移动图形的情况下更改轴位置

时间:2017-03-20 16:33:06

标签: c# math pivot

我想安全地改变枢轴"。当更改枢轴时,我希望绘图矩形保持在相同的位置,但是使枢轴(和它的XY位置)改变。

这是我的意思的形象: Pivot change without moving green box

我的支点工作方式如下:PivotX=0 PivotY=0位于左上角,PivotX=1 PivotY=1位于矩形的右下角。

现在我的问题是代码:

public void ChangePivot(float pivotX, float pivotY)
{
    float oldPivotX = PivotX; // PivotX is object's variable
    float oldPivotY = PivotY; // PivotY is object's variable
    PivotX = pivotX;
    PivotY = pivotY;
    X -= (oldPivotX - PivotX) * Width * (float)Math.Cos(Rotation * Math.PI / 180);  // X and Rotation are object's variables
    Y -= (oldPivotY - PivotY) * Height * (float)Math.Cos(Rotation * Math.PI / 180);  // Y and Rotation are object's variables
}

枢轴更改在X轴上完美运行,但不在Y轴上。

编辑:我在Cos部分发现了问题

我一直在寻找"安全改变支点"式。我找不到一个,可能因为我无法用很少的关键词描述这个东西。所以这是我最好的解决方案。

感谢您的帮助!

作为一个数学菜鸟的Apollogies。 :d

0 个答案:

没有答案