Вычислить ширину и высоту прямоугольника по диагонали и повороту

У меня есть прямоугольник поворота, и я знаю размер диагонали. Я также знаю угол, используемый для поворота прямоугольника.

Как рассчитать ширину и высоту прямоугольника?

Набросок проблемы см.

альтернативный текст


person Hugo    schedule 30.08.2010    source источник
comment
Даже при a=0 вы не можете получить w и h только из длины диагонали.   -  person Eric Bainville    schedule 30.08.2010


Ответы (2)


1) создать новую линию, начинающуюся в одном из концов диагонали и идущую под углом поворота.

2) спроецируйте другой диагональный конец на эту линию. Теперь вы знаете одну сторону прямоугольника.

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

Единственный «хитрый» код здесь — проекция. На этой веб-странице есть пример кода для расстояния/проекции точка-линия: http://softsurfer.com/Archive/algorithm_0102/algorithm_0102.htm

person David Rutten    schedule 30.08.2010

Спасибо, Дэвид Руттен,

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

К сожалению, я слишком «новый» здесь, чтобы наградить вас кредитами или ответить на ваш ответ.

@Eric Bainville: я знал расстояние, потому что у меня были координаты point1 и point2 (вверху слева и внизу справа). По этим координатам можно. Я не упомянул об этом, но, к счастью, Дэвид угадал, что я их знаю.

Еще раз спасибо!

person Hugo Delsing    schedule 30.08.2010