Вычисления смещения смещения в .NET2

Я задавался вопросом, может ли кто-нибудь помочь мне с этой проблемой, которая у меня есть. Я использую среду .NET 2.

У меня есть 2 точки в разных местах на 2D-плоскости как два PointF

У меня есть известное вращение (в градусах) в первой точке, мне нужно знать, как рассчитать, каким будет это вращение во второй точке «смещения».

Другими словами, я хочу повернуть вторую точку на неизвестную величину, но эффект в первой точке должен быть известным значением поворота.

Я пробовал все, чтобы решить эту головоломку, мои математические и триггерные навыки довольно ржавые. Может кто-нибудь мне помочь?

Большое спасибо.


person George Foot    schedule 12.05.2011    source источник
comment
Непонятно, чего вы пытаетесь добиться. Когда вы говорите «вращаться», вы вращаетесь вокруг начала координат? Вы хотите, чтобы точка № 2 вращалась вокруг точки № 1? Картинка была бы очень кстати. Я не понимаю, что ты пытаешься сделать.   -  person Jim Mischel    schedule 12.05.2011
comment
Надеюсь, это поможет: i55.tinypic.com/68ev5x.jpg Я пытаюсь вычислить, что вращение будет в точке B (которая является известным смещением от точки A), когда известное вращение применяется к точке A. В частности, у меня есть две системы, пытающиеся передать смещения, измеренные как X, Y и вращение. Однако две системы используют разные точки вращения, поэтому мне нужно применить какую-то коррекцию вращения.   -  person George Foot    schedule 13.05.2011
comment
Итак, вы хотите повернуть точку A относительно какой-то другой точки, назовите ее Origin A. Затем вы хотите повернуть точку B относительно какой-то другой точки, назовите ее Origin B, чтобы, когда это будет сделано, положение B относительно A не изменилось. измененный?   -  person Jim Mischel    schedule 13.05.2011
comment
Нет, я пытаюсь преобразовать значение вращения, рассчитанное вокруг одной точки, в вращение вокруг отдельной точки с известным смещением по осям X и Y.   -  person George Foot    schedule 16.05.2011
comment
Но это невозможно в общем случае. Например, вращение точки (10, 10) вокруг начала координат приведет к точкам, которых невозможно достичь при вращении, скажем, вокруг (12, 23). Также должен быть компонент перевода.   -  person Jim Mischel    schedule 16.05.2011
comment
Можете ли вы расширить это, пожалуйста? Я хочу лучше понять проблему и решить, как решать проблемы (но с радостью возьму псевдокод!)   -  person George Foot    schedule 17.05.2011
comment
@George: Вы можете ясно видеть, что необходим перевод, потому что если вы вращаетесь вокруг точки a, то точка a не будет двигаться. однако любое вращение вокруг точки b либо ничего не сдвинет, либо переместит точку a, что не является правильным (при условии, что вращение вокруг a не равно нулю).   -  person Chris    schedule 17.05.2011


Ответы (1)


Я пытаюсь преобразовать значение вращения, рассчитанное вокруг одной точки, в вращение вокруг отдельной точки с известным смещением X и Y.

Я интерпретирую это как означающее, что у вас есть третья точка, назовем ее точкой R, которая поворачивается на x градусов вокруг точки A. Вы хотите выяснить, на сколько градусов вокруг точки B повернулась точка R.

В таком формате это невозможно. Круг вращения вокруг точки A (красный) отличается от круга вращения вокруг точки B (синий). Две черные стрелки показывают, что когда вы говорите «повернуть вокруг точки А» и «повернуть вокруг точки Б», они уводят вас в разные стороны.

person Calvin Fisher    schedule 17.05.2011