| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Линия |
| Автор: PMOLO 19.6.2012, 18:46 |
| На картинке дана линия. Необходимо дорисовать линию до квадрата. Я знаю, как определить координаты этой линии, но не знаю, как дорисовать ее до квадрата. Подскажите! |
| Автор: Pawl 19.6.2012, 21:31 | ||
На самом деле человеку, видимо, требуется определить длину линии исходя из координат ее концов. Тут все просто: если линия параллельна ОХ - ее длина х2 - х1; если оу - у2 - у1. Если же под углом к осям, длина вычисляется по теореме Пифагора. Дальше, исходя из длины линии, вычисляются координаты остальных вершин квадрата. |
| Автор: iff 19.6.2012, 22:20 | ||||
L=Sqrt(Sqr(X1-X2)+Sqr(Y1-Y2))
этого ветвления в пограмме делать не надо. Существует много способов. |
| Автор: northener 20.6.2012, 00:42 |
Геометрически только два! |
| Автор: de_Nis 20.6.2012, 14:29 |
Не хватает закрывающей скобки: L=Sqrt(Sqr(X1-X2)+Sqr(Y1-Y2)) PMOLO, забудь на минутку о программировании. Вначале реши чисто геометрическую задачу. Есть координаты двух точек - смежных вершин квадрата. Квадрат может быть с одной или с другой стороны линии, соединяющей эти точки. То есть, как говорил northener, их может быть только два. Нужно высчитать координаты двух оставшихся вершин квадрата. Можешь посчитать для какого-то одного или для обоих квадратов, зависит от задания, которое ты получил. Потом переходи к программированию. Напиши код по расчету координат вершин квадрата (квадратов). И только после этого уже рисуй квадрат (или квадраты), последовательно соединяя точки с известными и рассчитанными координатами, используя команду Line. |
| Автор: iff 20.6.2012, 16:13 | ||
Ещё может быть так, что линия - диагональ квадрата. |
| Автор: de_Nis 21.6.2012, 08:50 |
ИМХО, эти слова говорят, что эта линия (вернее, отрезок, так как есть начало и конец) - сторона квадрата. Да и northener пришел к такому же выводу. Впрочем, PMOLO может уточнить, может ли этот отрезок быть диагональю квадрата. |