Форум программистов, компьютерный форум CyberForum.ru

Подобие math.h для геометрии - C++

Восстановить пароль Регистрация
 
Excalibur921
426 / 235 / 37
Регистрация: 12.10.2013
Сообщений: 1,787
29.06.2015, 23:54     Подобие math.h для геометрии #1
Существуют ли такие библиотеки? И где их взять..
Например, нужно найти расстояние от точки до прямой заданной двумя точками в 3д.
А нет ли высокоуровневой функции типа вход 9 чисел( XYZ для 3 точек) выход координаты точки перпендикуляра опущенного на прямую. Чтобы потом найти расстояние от точки до прямой.

Добавлено через 1 час 8 минут
Но неужели всегда пишут велосипед? Не верю… Пример решения внизу страницы.
http://www.cleverstudents.ru/line_an...t_to_line.html
Предложили все 3 точки рассматривать в одной плоскости абстрактно.

Думаю так:
1)формула высоты треугольника дает координаты точки перпендикуляра зная длинны сторон?
1.1)или координаты перпендикуляра на луч в 2д(была формула где то)
3)находим длину отрезка до точки перпендикуляра
4)продолжаем прямую на заданный отрезок получаем XYZ.Понятия не имею как это векторы наверно лучше брать чем искать 3 угла через Эйлера неудобно.

И вроде выглядит намного проще чем методы по ссылке выше.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2015, 23:54     Подобие math.h для геометрии
Посмотрите здесь:

C++ Задачка по Геометрии
C++ <iostream.h> и <math.h>
не работает math.h C++
math.h тригонометрические функции C++
C++ math.h перегруженная функция
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,017
Записей в блоге: 10
Завершенные тесты: 1
30.06.2015, 02:42     Подобие math.h для геометрии #2
Подожди до завтра... Подумаем что можно сделать.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11833 / 6812 / 769
Регистрация: 27.09.2012
Сообщений: 16,887
Записей в блоге: 2
Завершенные тесты: 1
30.06.2015, 05:20     Подобие math.h для геометрии #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
boost::geometry??
Ну и конкретно boost::geometry::distance
Calculate the distance of two geometries.
Excalibur921
426 / 235 / 37
Регистрация: 12.10.2013
Сообщений: 1,787
30.06.2015, 10:55  [ТС]     Подобие math.h для геометрии #4
Найдено решение с помощью подсказки программиста и википедии =).
Первый способ решения:
Переход к параметрической форме задания прямой в 100 раз упрощает расчет.
http://www.cyberforum.ru/cgi-bin/latex.cgi?Xa,Ya,Za первая точка прямой
http://www.cyberforum.ru/cgi-bin/latex.cgi?Xb,Yb,Zb, вторая
http://www.cyberforum.ru/cgi-bin/latex.cgi?Xc,Yc,Zc точка из которой перпендикуляр на прямую

http://www.cyberforum.ru/cgi-bin/latex.cgi?Ax=Xb-Xa
http://www.cyberforum.ru/cgi-bin/latex.cgi?Ay=Yb-Ya
http://www.cyberforum.ru/cgi-bin/latex.cgi?Az=Zb-Za
http://www.cyberforum.ru/cgi-bin/latex.cgi?tmin=(Ax(Xc-Xa)+Ay(Yc-Ya)+Az(Zc-Za))/(Ax^2+Ay^2+Az^2)
Затем http://www.cyberforum.ru/cgi-bin/latex.cgi?tmin подставляем даст XYZ перпендикуляра на прямой.
http://www.cyberforum.ru/cgi-bin/latex.cgi?X=Xa+Ax*tmin<br />
Y=Ya+Ay*tmin<br />
Z=Za+Az*tmin
И координаты дает, и расстояния найти легко...красота.
Теперь попробую еще одну подсказку с помощью сферы, если осилю. Наверно этот метод еще быстрей.
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,017
Записей в блоге: 10
Завершенные тесты: 1
30.06.2015, 11:02     Подобие math.h для геометрии #5
Excalibur921, совсем забыл про boost::geometry. Думаю это именно то, что ты искал.
Excalibur921
426 / 235 / 37
Регистрация: 12.10.2013
Сообщений: 1,787
30.06.2015, 11:31  [ТС]     Подобие math.h для геометрии #6
А вдруг они там считали как умники из первой ссылки что я кидал? В любом случае параметрический наверно самый быстрый из всех. Да и формулы что я привел это универсальный алгоритм может быть для любого языка программирования в мире или программы. По хорошему эту тему бы в Алгоритмы кинуть.
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,017
Записей в блоге: 10
Завершенные тесты: 1
30.06.2015, 12:03     Подобие math.h для геометрии #7
Цитата Сообщение от Excalibur921 Посмотреть сообщение
А вдруг они там считали как умники из первой ссылки что я кидал?
Ты просил библиотеку - вот она, boost::geometry.
А производительность ты можешь и сам проверить. Не думаю что такой простой алгоритм будет плохо реализован в данной библиотеке. В конце концов исходники открыты.
Excalibur921
426 / 235 / 37
Регистрация: 12.10.2013
Сообщений: 1,787
30.06.2015, 12:27  [ТС]     Подобие math.h для геометрии #8
Судя по ссылкам выше+ куче дублей в инете с заумными методами… думаете там быстрый? А вот это вопрос экспертам с++ и математикам. Хотите гляньте, и нам расскажете =).Может причина сложных методов по ссылке что я кидал в том, что там именно требование решать таким неудобным методом чтобы обучить математике, а не использовать ее правильно и писать быстрый код. Скорость алгоритмов для гуру, хотите раскрутите чей быстрей. Но все это уже немного офтоп, библиотеку подсказали, велосипед ТС накатал, решай не хочу =).
castaway
Эксперт С++
4844 / 2983 / 367
Регистрация: 10.11.2010
Сообщений: 11,017
Записей в блоге: 10
Завершенные тесты: 1
30.06.2015, 12:31     Подобие math.h для геометрии #9
Мне это не интересно, если это не интересно никому, особенно ТС
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11833 / 6812 / 769
Регистрация: 27.09.2012
Сообщений: 16,887
Записей в блоге: 2
Завершенные тесты: 1
30.06.2015, 13:10     Подобие math.h для геометрии #10
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Но все это уже немного офтоп, библиотеку подсказали, велосипед ТС накатал, решай не хочу =).
велосипед
castaway
30.06.2015, 13:35
  #11

Не по теме:

Croessmah, еще не смотрел эту серию

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2015, 13:46     Подобие math.h для геометрии
Еще ссылки по теме:

C++ Функция ceil() (math)
Подобие игры C++
Аргтансенс в Math C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Mr.X
Эксперт С++
 Аватар для Mr.X
2802 / 1578 / 247
Регистрация: 03.05.2010
Сообщений: 3,666
30.06.2015, 13:46     Подобие math.h для геометрии #12
М-да, доучились, высоту параллелограмма уже вычислить проблема...
Yandex
Объявления
30.06.2015, 13:46     Подобие math.h для геометрии
Ответ Создать тему
Опции темы

Текущее время: 14:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru