Форум программистов, компьютерный форум, киберфорум
Геометрия
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 03.04.2019
Сообщений: 33

Геометрические формулы с кругом и треугольником

28.06.2019, 10:30. Показов 1048. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть две задачки. Я весь интернет пролистал но не нашел формул. буду благодарен если подсскажите формулы или норм материал с формулами
1) Функция проверяет - луч перетинается с кругом. Если пересекает то вывести ближайшую точку
2) Дан треугольник. Проверить точка лежит в середине этого треугольника или нет.

Буду рад за подскащки как сделать.
P.S геометрию смотерл, не нашел то что мне нужно
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.06.2019, 10:30
Ответы с готовыми решениями:

Геометрические построения с нарисованными треугольником, вписанной и описанной окружностью
Доброго времени суток!!! прошу помощи - есть график с нарисованными треугольником, вписанной и описанной окружностью и их центрами ...

Геометрические формулы
Ребят если можете напишите код программы которая считает геометрические формулы С++ Builder

Кругом реклама :(
Здравствуйте... Простите что обращаюсь за помощью, но просто сил уже никаких нет :cry: . Постоянная реклама в браузерах. Пробовала и хром,...

4
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
28.06.2019, 10:51
1) Соотношения определяющие луч, исходящий из точки A в направлении вектора V:
X = A + Vt
t >= 0
A, X- вектора
t - скаляр (число)

Добавлено через 6 минут
2)
Цитата Сообщение от vovamakarovych Посмотреть сообщение
в середине этого треугольника
Имелось в виду "внутри", да?
2 точки лежат по одну сторону от прямой тогда и только тогда, когда подстановка их координат в общее ураавнение этой прямой получается одинаковый знак (плюс-минус)
Нам нужно, чтобы для каждой стороны треугольника противоположная вершина и наша точка лежали по одну сторону.
Есть и другой способ - через векторные произведения.
0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
28.06.2019, 11:16
1) Определяют расстояние от точки центра окружности до прямой ОВ.
Если расстояние больше радиуса окружности точек пересечения нет.
Находят расстояние от начала луча до центра окружности АО.
Далее зная расстояние от ОВ и АО из прямоугольного треугольника находят угол ОАВ.
Решая косоугольный треугольник находят угол ОАВ
Определяют направление АО (угол между осью х и АО)
Определяют направление ОВ.
Находят координаты точки В.
Проверяем лежит ли точка В на луче, или находится на другой стороне прямой (луча)

Цитата Сообщение от vovamakarovych Посмотреть сообщение
Проверить точка лежит в середине этого треугольника или нет.
Ну наверно не в центре, а внутри треугольника.

Функция pointInTriangle проверяет точки на попадание внутрь треугольника: функция возвращает значение TRUE, если точка р находится внутри треугольника а, b и с,
в противном случае возвращаемое значение равно FALSE.
Pascal
1
2
3
4
5
6
bool pointInTriangle (Point p, Point a, Point b, Point c)
{
  return ((p.classify (a, b) != LEFT) &&
        (p.classify(b, c) != LEFT) &&
        (p.classify(c, a) != LEFT));
}
Для определения положения текущей точки относительно отрезка прямой линии p0p1,
направленного от точки р0 к точке p1, используется компонентная функция classify.
Возвращается значение типа перечисления, указывающее на положение текущей точки:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
enum {LEFT,  RIGHT,  BEYOND,  BEHIND, BETWEEN, ORIGIN, DESTINATION};
//    СЛЕВА, СПРАВА, ВПЕРЕДИ, ПОЗАДИ, МЕЖДУ,   НАЧАЛО, КОНЕЦ
 
int Point::classify(Point &p0, Point &pl)
{
  Point p2 = *this;
  Point a = p1 - pO;
  Point b = p2 - pO;
  double sa = a. x * b.y - b.x * a.y;
  if (sa > 0.0)
    return LEFT;
  if (sa < 0.0)
    return RIGHT;
  if ((a.x * b.x < 0.0) || (a.y * b.y < 0.0))
    return BEHIND;
  if (a.length() < b.length())
    return BEYOND;
  if (pO == p2)
    return ORIGIN;
  if (p1 == p2)
    return DESTINATION;
  return BETWEEN;
}
0
0 / 0 / 0
Регистрация: 03.04.2019
Сообщений: 33
28.06.2019, 12:17  [ТС]
Байт,
2) да внутри. а как через векторное произведение сделать?
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
28.06.2019, 18:17
Цитата Сообщение от vovamakarovych Посмотреть сообщение
как через векторное произведение сделать?
Выражения (3 штуки) Ax*By - Ay*Bx, Bx*Cy - By*Cx, Cx*Ay - Cy*Ax должны иметь один знак.

Добавлено через 5 часов 43 минуты
Кажется, я ошибся. Выражения вот такие
(Mx - Ax)* (My - By) - (My - Ay)*(Mx - Bx),
(Mx - Bx)* (My - Cy) - (My - By)*(Mx - Cx),
(Mx - Cx)* (My - Ay) - (My - Cy)*(Mx - Ax)
должны иметь один знак.
То есть векторные произведения MA x MB, MB x MC, MC x MA должны быть одинаково направлены.
Вот ежели начало координат поместить в точку M, тогда вышеприведенные соотношения имеют право на жизнь.
Прошу простить меня великодушно...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.06.2019, 18:17
Помогаю со студенческими работами здесь

Задание с кругом
По стенкам PictureBox не слишком быстро (заметно для пользователя) катится круг. В круге случайным образом выбирается точка. Рисовать...

Треугольник с кругом внутри
Помогите пожалуйста написать код программы для двух случаев. Сама что-то не могу разобраться. уже третий день сижу :(

Дом с красным кругом
Нужно нарисовать дом с красным кругом внутри

Различные действия с кругом
Добрый день) Столкнулся недавно с новым языком C# на ООП в университете. Дали первое задание, построить круг. Справился с ней, но...

Вывод картинки, ограниченной кругом
Всем привет. вот ссылка на картинку Не приходит никаких идей как сделать такой прозрачный кружок. Есть у кого идеи?)


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru