Старый 22.10.2014, 15:26   #1   
TERminaTOR
 
Аватар для Globuses
 
Сообщений: 6,540
Регистрация: 05.04.2007
Возраст: 49

Globuses вне форума Не в сети
Нужна помощь математиков

Приветствую! Пишу программу и столкнулся с небольшой трудностью в плане уравнений прямых на плоскости. Ну слабоват я в этой области...
Суть проблемы: есть три точки на плоскости. Их координаты известны. Первые две лежат на прямой. Третья точка не принадлежит этой прямой. Надо получить координаты четвертой точки, которая является зеркальным отображением третьей точки относительно этой прямой.
Буду благодарен за помощь!
Миниатюры
Нажмите на изображение для увеличения
Название: 00.JPG
Просмотров: 13
Размер:	9.5 Кб
ID:	2574629  

Последний раз редактировалось Globuses; 25.10.2014 в 14:00.
 
Старый 23.10.2014, 09:18   #2   
Форумец
 
Аватар для MadFish
 
Сообщений: 340
Регистрация: 25.07.2002

MadFish вне форума Не в сети
Уравнение прямой, проходящей через две точки.

Расстояние от точки до прямой

А вообще справочник по геометрии тебе лучше меня поможет.
http://mathprofi.ru/
 
Старый 23.10.2014, 11:02   #3   
TERminaTOR
 
Аватар для Globuses
 
Сообщений: 6,540
Регистрация: 05.04.2007
Возраст: 49

Globuses вне форума Не в сети
Я просил готового решения, а не отсыла...
 
Старый 23.10.2014, 11:42   #4   
Registered User
 
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56

Hopkroft вне форума Не в сети
Globuses, я правильно понимаю, что тебе нужна формула, в которую ты подставишь значения, и на выходе получишь координаты точки?
На чём программу пишешь?
 
Старый 23.10.2014, 12:08   #5   
TERminaTOR
 
Аватар для Globuses
 
Сообщений: 6,540
Регистрация: 05.04.2007
Возраст: 49

Globuses вне форума Не в сети
Дельфи.
Я попробовал вывести формулу сам, но Где-то ошибка, вроде все перепроверял.
Щя попробую так написать, Может кто незамыленным взглядом ошибку найдет...
 
Старый 23.10.2014, 12:41   #6   
TERminaTOR
 
Аватар для Globuses
 
Сообщений: 6,540
Регистрация: 05.04.2007
Возраст: 49

Globuses вне форума Не в сети
Скалярное произведение перпендикулярных векторов =0:
есть векторы 12 (Х2-Х1,У2-У1) и 34 (Х4-Х3,У4-У3)
12*34 = 0 = (Х2-Х1)*(Х4-Х3)+(У2-У1)*(У4-У3) (1)
Из уравнения прямой, проходящей через 2 точки получаем, что (см. рис.)
У4=((У2-У1)*(Х4-Х1)/(Х2-Х1))+У1 (2)
для некоторого упрощения введем
а=Х2-Х1
в=У2-У1

И подставляя (2) в (1) и проведя преобразования получим:
Х4=(а*в*(У3-У1)-а*а*Х3+в*в*Х1)/(а*а+в*в)

Окончательный результат
Х5=Х4+(Х4-Х3)=2*Х4-Х3
У5=У4-(У3-У4)=2*У4-У3

Последний раз редактировалось Globuses; 23.10.2014 в 15:02.
 
Старый 24.10.2014, 11:06   #7   
гы
 
Аватар для Шапокляк
 
Сообщений: 103
Регистрация: 20.04.2008

Шапокляк вне форума Не в сети
private static final Point1=new Point(x1,x2),Point2,,,Point3...;
private static float getH(Point point){
return расстояние от точки point до прямой Point1-Point2; }
private static Point getPoint4(){
private Point4=null;
while( Point4==null){
Point4=new Point(random,random);
if (Point4==Point3) breake;
else if (getH(Point4) !=getH(Poin3)) Point4=null;
}
return Point4;}
скелет решения на яве
 
Старый 24.10.2014, 15:29   #8   
TERminaTOR
 
Аватар для Globuses
 
Сообщений: 6,540
Регистрация: 05.04.2007
Возраст: 49

Globuses вне форума Не в сети
Программа не на яве, а на Дельфи
Впрочем, решение я нашел и реализовал. Всем спасибо
 
Старый 25.10.2014, 14:03   #9   
TERminaTOR
 
Аватар для Globuses
 
Сообщений: 6,540
Регистрация: 05.04.2007
Возраст: 49

Globuses вне форума Не в сети
Решение нашлось иное: Моя задача - это нахождение координат точек пересечения двух окружностей. Известны координаты центров и радиусы.
 
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind