Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2016, 00:32   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию С++ и матан. Как проверить то, что три точки лежат на одной прямой?

РЕбят, есть задание, как математически проверить то, что точки лежат на прямой исходя из ТЗ (с++)?

Цитата:
Реализовать класс: "Точка в трехмерном пространстве". Поля - координаты точки. Метод - проверка попадания трех точек на одну прямую (точнее в одну трубку с заданной точностью).
Ребят - у меня возникло несколько вопросов:

1) конструктор для одной точки должен состоять из трех составляющий, т.е. полей должно быть три или два?

2) я так понял, что в последствии после реализации класса нужно будет создать три объекта этого класса (3 точки), ввести 9 значений (х1,2,3, у1,2,3, z1,2,3) в эти три объекта.

3) кто-нибудь может подсказать - что значит с заданной точностью?

как я понял - метод должен быть bool, а в аргументах - три указателя на объект класса.

Далее, как я понял, нужно составить уравнение прямой, но как найти x,y,z и проверить условие что если уравнение дает 0 при решении, то точки принадлежат прямой?
from dark to light)

Последний раз редактировалось Алексей_2012; 15.12.2016 в 01:05.
Алексей_2012 вне форума Ответить с цитированием
Старый 15.12.2016, 03:48   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

К тем вопросам, что ты задал, от себя добавлю: "А что такое труба?"
Это как водопроводный шланг на огороде или нет?
ura_111 вне форума Ответить с цитированием
Старый 15.12.2016, 08:14   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
РЕбят, есть задание, как математически проверить то, что точки лежат на прямой исходя из ТЗ (с++)?
Вспоминаем школу:
1. по двум точкам можно построить уравнение прямой, проходящей через эти точки.
2. если точка лежит на прямой, то она удовлетворяет, сюрприз, уравнению этой прямой

Цитата:
1) конструктор для одной точки должен состоять из трех составляющий, т.е. полей должно быть три или два?
Сколько измерений у трехмерного пространства? Может сделать конструктор с одним параметром - списком инициализации.

Цитата:
2) я так понял, что в последствии после реализации класса нужно будет создать три объекта этого класса (3 точки), ввести 9 значений (х1,2,3, у1,2,3, z1,2,3) в эти три объекта.
Ну где-то так, хотя возможно захотят последнюю точку менять...

Цитата:
3) кто-нибудь может подсказать - что значит с заданной точностью?
Ну вам же не зря про трубку написали в пояснениях. Представьте прямую в пространстве, а теперь представьте, что нас интересую не только точки на ней, но и еще и в некотором удалении от нее... вот и получится уже такая трубочка...

Цитата:
как я понял - метод должен быть bool, а в аргументах - три указателя на объект класса.
Если функция у вас метод класса, то один из указателей у вас уже есть.

Цитата:
Далее, как я понял, нужно составить уравнение прямой, но как найти x,y,z и проверить условие что если уравнение дает 0 при решении, то точки принадлежат прямой?
Вы не умеет решать уравнения первой степени? Или вас напрягает система уравнений? Может направляющий вектор найти и просто выписать по формуле. При решении не забывайте про точность.

Цитата:
К тем вопросам, что ты задал, от себя добавлю: "А что такое труба?"
Это как водопроводный шланг на огороде или нет?
Вы ни разу на математике в старшой школе или в вузе не были? В каждой точке прямой рассматривайте не только точку прямой, а и все, что попадают в окружность некоторого радиуса.

Последний раз редактировалось p51x; 15.12.2016 в 08:19.
p51x вне форума Ответить с цитированием
Старый 15.12.2016, 08:57   #4
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Алексей_2012
Цитата:
1) конструктор для одной точки должен состоять из трех составляющий, т.е. полей должно быть три или два?
Почему два? Три x,y,z.

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
кто-нибудь может подсказать - что значит с заданной точностью?
как я понял - метод должен быть bool, а в аргументах - три указателя на объект класса.
Далее, как я понял, нужно составить уравнение прямой, но как найти x,y,z и проверить условие что если уравнение дает 0 при решении, то точки принадлежат прямой?
x,y,z вам даны.
Вот вместо 0 и подставляешь заданную точность(eps).

Вообще тут методов куча можно к примеру через МНК пойти.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 15.12.2016, 11:44   #5
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

ребят, а что если представить то, что три точки - это треугольник, а точность - минимальный диаметр трубки, получаем, грубо говоря треугольник с описаной вокруг него окружностью, тогда глупый вопрос:

как по трем точкам с тремя координатами вычислить вмещается ли площадь в круг или нет?
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 15.12.2016, 12:02   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
ребят, а что если представить то, что три точки - это треугольник, а точность - минимальный диаметр трубки
Не надо так представлять. Точностью будет соответствующая высота.
p51x вне форума Ответить с цитированием
Старый 15.12.2016, 12:27   #7
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

т.е. точность (высота) вводится с клавиатуры по условию, значит мне остается по координатам точек найти площадь треугольника, выразить высоту и сравнить со введенной?
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 15.12.2016, 12:35   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну да, как вариант...
p51x вне форума Ответить с цитированием
Старый 15.12.2016, 13:25   #9
netpolice
Форумчанин
 
Аватар для netpolice
 
Регистрация: 14.02.2013
Сообщений: 222
По умолчанию

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
т.е. точность (высота) вводится с клавиатуры по условию, значит мне остается по координатам точек найти площадь треугольника, выразить высоту и сравнить со введенной?
Есть мнение, что искать нужно 3 высоты....
netpolice вне форума Ответить с цитированием
Старый 15.12.2016, 13:32   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
Метод - проверка попадания трех точек на одну прямую
а я это задание понял так.
даны координаты трёх точек.
дано уравнение прямой (в любом удобном для программиста виде).
нужно проверить, попадают ли точки на эту прямую с заданной точностью
Найти кратчайшее расстояние (читай высоту) от каждой точки до прямой, если все три точки укладываются в заданную точность (расстояние до прямой меньше eps),
то возвращаем true, иначе - false.

я не прав?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Точки, лежащие на одной прямой dimon_snake Паскаль, Turbo Pascal, PascalABC.NET 38 06.01.2016 21:01
Определить, лежат ли точки на одной прямой Паскаль anton.dasuik Помощь студентам 1 27.02.2013 22:52
Выяснить лежат ли точки на одной прямой commander_spock Помощь студентам 10 20.10.2010 14:44
Определить Лежат ли точки на одной прямой домик Помощь студентам 10 11.04.2010 20:12
Определить, лежат ли обе точки относительно прямой в одной полуплоскости - задача на С++. Wia Помощь студентам 4 21.12.2008 02:06