Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
Нужна помощь математиков |
Философия, технологии, алгоритмы! |
|
Опции темы |
22.10.2014, 15:26 | #1 |
TERminaTOR
Сообщений: 6,540
Регистрация: 05.04.2007
Возраст: 49
Не в сети |
Нужна помощь математиков
Приветствую! Пишу программу и столкнулся с небольшой трудностью в плане уравнений прямых на плоскости. Ну слабоват я в этой области...
Суть проблемы: есть три точки на плоскости. Их координаты известны. Первые две лежат на прямой. Третья точка не принадлежит этой прямой. Надо получить координаты четвертой точки, которая является зеркальным отображением третьей точки относительно этой прямой. Буду благодарен за помощь! Последний раз редактировалось Globuses; 25.10.2014 в 14:00. |
23.10.2014, 09:18 | #2 |
Форумец
Сообщений: 340
Регистрация: 25.07.2002
Не в сети |
Уравнение прямой, проходящей через две точки.
Расстояние от точки до прямой А вообще справочник по геометрии тебе лучше меня поможет. http://mathprofi.ru/ |
23.10.2014, 12:41 | #6 |
TERminaTOR
Сообщений: 6,540
Регистрация: 05.04.2007
Возраст: 49
Не в сети |
Скалярное произведение перпендикулярных векторов =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;} скелет решения на яве |