2009-08-18 6 views
1

Привет, у меня возникла проблема с масштабированием фигур. Хорошо, я пытаюсь масштабировать две аналогичные фигуры. Он находится в 2d, и каждая форма имеет n точек. Я нашел заявление, подобное этому, из статьи, которую я прочитал2D Масштабирование формы

«Размер формы - это среднеквадратическое расстояние между точками формы и , это центроид».

Так что с этой точки, если рассчитать размер обеих форм S1 и S2 и позволяет сказать, что S1 = XS2, так что если я создаю масштабирование матрицы, как этот

[х 0] [0 х]

(я только что написал 2x2-матрицу, я знаю, что она должна быть другой), и если я mulitply это с S2, их формы выровнены? Thx

ответ

0

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

Это ничего не говорит об их выравнивании. this paper might help your understanding, если вы хотите сделать это эффективно

+0

хорошо, я тоже так думал, но я не знаю. ищет эту бумагу, которую вы указали ссылку.thx – Emre

1

Ну, я думаю, что нашел решение. Это делается с использованием шкалы, а не реального значения масштаба.

если форма 3 точек (x1, y1) (x2, y2) (x3, y3) шкало метрика S квадратный корень из суммы каждых точек квадратов значений, как

означает, X = (x1 + x2 + x3)/3

среднее у = (у1 + у2 + у3)/3

S = ((x1-х)^2 + (у1-у)^2 + (х2-х)^2 + (y2-y)^2 + (x3-y)^2)^1/2

и если эта метрика шкалы рассчитана для обеих фигур, будет такое уравнение, как это S1 = AS2

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

+0

Кто-нибудь хочет прокомментировать? – Emre

+0

Хорошо, здесь есть небольшая ошибка. Я обновлю его. прямо сейчас это работает, когда обе формы центрированы в начале координат – Emre