| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Алгоритм] Найти координаты точки на отрезке |
| Автор: Vreden 19.8.2011, 17:10 |
| В процессе программирование понадобилось следующее Есть координаты двух точек, которые составляют отрезок x1 = 100 y1 = 0 x2 = 0 y2 = 100 Находим длину отрезка L^2 = (x1 – x2)^2 + (y1 – y2)^2 L^2 = (100 – 0)^2 + (0 – 100)^2 L^2 = 10000 + 10000 = 20000 L = 141 Теперь нам нужно найти координату точки которая лежит на этом отрезке, на его длине L = 23 Получаем 23^2 = (100 – x2)^2 + (0 – y2)^2 Как найти x2 и y2? Быть может тут требуется применить еще какие другие формулы? |
| Автор: vedun 19.8.2011, 17:34 |
| Можно посчитать угол наклона прямой, зная гипотенузу и угол наклона находим два катета. Это будут добавки к координатам точки от которой отсчитываем расстояние вдоль прямой. |
| Автор: Vreden 19.8.2011, 17:45 |
| Нашел ответы на свои вопросы Решение 1: x=(x₁+λx₂)/(1+λ), y=(y₁+λy₂)/(1+λ). Где λ=L₁/L₂ Решение 2: tgA=(Y2-Y1)/(X2-X1) Dx=23*cosA Dy=23*sinA X=X1+Dx Y=Y1+Dy Спасибо за внимание вопрос решен |
| Автор: TheLex 20.9.2011, 00:53 |
| а если у меня есть точка на таком же отрезке. но неизвестны длины отрезков, а известна одна из координат точки. как узнать вторую координату? |
| Автор: Earnest 20.9.2011, 07:53 |
| Подставь известную координату в уравнения прямой и получи вторую. Уравнение прямой, проходящей через 2 точки, есть в любом справочнике по элементарной математике. Ну и вопросы у вас, господа... или в школе уже геометрию заменили на "любовь к родине", как грозятся? |
| Автор: TheLex 20.9.2011, 09:57 |
| не все предметы в школе я любил, а вот конкретную формулу подскажи |
| Автор: McMan 20.9.2011, 18:24 | ||
TheLex
есть точка на таком же отрезке. x3=a y3=? Система координат-то Декартова, прямоугольная? (x1-x2)/(y1-y2)=(x1-x3)/(y1-y3) Подобие треугольников хотя бы... y1-y3=(x1-x3)*(y1-y2)/(x1-x2) y3=(x3-x1)*(y1-y2)/(x1-x2)+y1 в данном конкретном y3=(a-100)*(0-100)/(100-0) +0=100-a но в случае, если "пишешь программу" следи чтобы x1 != x2 иначе просто y3=(y1+y2)/2 PS кстати, не совсем понял, зачем я тут стал решать задачи пятого класса... накатило просто что-то. Извините. |