Как найти точки пересечения двух треугольников

Точки пересечения треугольников определяются в следующем порядке:

1.) Согласно заданию строятся точки по координатам.

Точки пересечения треугольников

2.) Теперь важным шагом является определение плоскости относительно которой будем искать точки пересечения треугольников.

Вы можете сказать: «можно найти точки относительно плоскости АВС», но нет. Почему!? Я объясню, посмотрев на рисунок, расположенный внизу, можно увидеть что треугольник D2E2F2, а точнее две стороны пересекают треугольник А2В2С2 в четырех точках, соответственно используем треугольник D2E2F2,как опорную плоскость. 

  • Сторона D2E2 пересекает плоскость А2В2С2 в точках 12 и 22, эти точки переносим на нижнее изображение: на стороны относительно которых они были найдены и обозначаем 11 и 21.
  • Точки 11 и 21 соединяются.
  • Прямая 1121 пересекает сторону D1E1 в точке, обозначим Р1 (первая точка найдена).

Точки пересечения треугольников_2

3.) Сторона E2F2 пересекает стороны B2C2 и A2C2 в точках 42 и 32. Опускаем их на нижний рисунок и обозначаем 41 и 31.

Точки пересечения треугольников_3

4.) Соединяются точки 31 и 41.

Точки пересечения треугольников_4

5.) Продливается прямая 3141 до пересечения с отрезком E1F1. В месте пересечения ставим точку и обозначаем Н.

Точки пересечения треугольников_5

6.) Точки P1 и H соединяются. Полученная прямая P1H пересекает отрезок А2С2 в точке K1 (найдена вторая точка).

Точки пересечения треугольников_6

7.) Переносятся точки P1 и K1, расположенные на отрезках D1E1 и E1F1, на отрезки D2E2 и E2F2. И обозначаются P2 и K2.

Точки пересечения треугольников_7

8.) Соединяются P2 и K2.

Точки пересечения треугольников_8

9.) А теперь главный момент: указать видимые и невидимые стороны.

Посмотрите на рисунок снизу. На нем точки D, F, B, C и E находятся в двух проекциях «свободно», но не точка A. Соответственно, относительно ее и необходимо начинать чертить линии.

Точки пересечения треугольников_9

Пример выполненной работы на эту тему смотрите здесь.

Немного добавлю по этой статье: «Точки пересечения треугольников»

По своему опыту скажу: «чтобы начертить подобный чертеж, необходимо обладать пространственным воображением» и понимать, относительно какой плоскости отталкиваться для решения подобной задачи. Но благодаря этой статьи надеюсь у Вас получится разобраться с темой: пересечение плоских фигур.

Просмотрели 404


Построение линии пересечения двух треугольников.

Построить линию пересечения треугольников ABC и EDK и показать видимость их в проекциях.
Определить натуральную величину треугольника ABC.

1. Строим проекции треугольника АВС.

Рисунок 1. Построение проекций треугольника АВС

2. Строим проекции треугольника EDK.

Рисунок 2. Построение проекций треугольника EDK

3. Находим точку пересечения стороны АС с треугольником EDK

 Рисунок 3. Точка пересечения отрезка АС с треугольником EDK

4. Находим точку пересечения стороны АB с треугольником EDKи строим линию пересечения MN

Построение линии пересечения двух треугольников

5. С помощью конкурирующих точек 4 и 5 определяем видимость треугольников на фронтальной плоскости проекций.

Рисунок 5. Видимость треугольников на фронтальной плоскости проекций.

6. С помощью конкурирующих точек 6 и 7 определяем видимость треугольников на горизонтальной плоскости проекций.

Рисунок 5. Видимость треугольников на горизонтальной плоскости проекций.

7. В треугольнике ABCпроводим горизонталь CLи плоскопараллельным перемещением относительно горизонтальной плоскости проекций располагаем горизонталь перпендикулярно фронтальной плоскости проекций.

Строим фронтальную проекцию треугольника ABC. Треугольник должен проецироваться в прямую линию.

Рисунок 7. Пересечение двух плоскостей. Определение натуральной величины треугольника АВС

8. Определяем действительную величину треугольника ABCи строим на нем линию пересечения MN.

Рисунок 8. Определение натуральной величины треугольника ABC

9. Оформление задачи.

Построение линии пересечения двух треугольников. Готовый чертеж.

№ вар. ХА YА ZА ХB YB ZB ХC YC ZC ХD YD ZD ХE YE ZE ХK YK ZK Цена В корзину № вар.
1 117 90 9 52 25 79 0 83 48 68 110 85 135 19 36 14 52 0 50 руб. в корзину 1
2 120 90 10 50 25 80 0 85 50 70 110 85 135 20 35 15 50 0 50 руб. в корзину 2
3 115 90 10 52 25 80 0 80 45 64 105 80 130 18 35 12 50 0 50 руб. в корзину 3
4 120 92 10 50 20 75 0 80 46 70 115 85 135 20 32 10 50 0 50 руб. в корзину 4
5 117 9 90 52 79 25 0 48 83 68 85 110 135 36 19 14 0 52 50 руб. в корзину 5
6 115 7 85 50 80 25 0 50 85 70 85 110 135 20 20 15 0 50 50 руб. в корзину 6
7 120 10 90 48 82 20 0 52 82 65 80 110 130 38 20 15 0 52 50 руб. в корзину 7
8 116 8 88 50 78 25 0 46 80 70 85 108 135 36 20 15 0 52 50 руб. в корзину 8
9 115 10 92 50 80 25 0 50 85 70 85 110 135 35 20 15 0 50 50 руб. в корзину 9
10 18 10 90 83 79 25 135 48 82 67 85 110 0 36 19 121 0 52 50 руб. в корзину 10
11 20 12 92 85 89 25 135 50 85 70 85 110 0 35 20 120 0 52 50 руб. в корзину 11
12 15 10 85 80 80 20 130 50 80 70 80 108 0 35 20 120 0 50 50 руб. в корзину 12
13 16 12 88 85 80 25 130 50 80 75 85 110 0 30 15 120 0 50 50 руб. в корзину 13
14 18 12 85 85 80 25 135 50 80 70 85 110 0 35 20 120 0 50 50 руб. в корзину 14
15 18 90 10 83 25 79 135 83 48 67 110 85 0 19 36 121 52 0 50 руб. в корзину 15
16 18 40 75 83 117 6 135 47 38 67 20 0 0 111 48 121 78 86 50 руб. в корзину 16
17 18 75 40 83 6 107 135 38 47 67 0 20 0 48 111 121 86 78 50 руб. в корзину 17
18 117 75 40 52 6 107 0 38 47 135 0 20 86 48 111 15 68 78 50 руб. в корзину 18

Начертательная геометрия решение задач

Начертательная геометрия 1 курс готовые чертежи по вариантам

Добавить комментарий

Чертежик

Метки

Точки пересечения треугольников пошаговое выполнение

Точки пересечения треугольников определяются в следующем порядке:

1.) Согласно заданию строятся точки по координатам.

2.) Теперь важным шагом является определение плоскости относительно которой будем искать точки пересечения треугольников.

Вы можете сказать: «можно найти точки относительно плоскости АВС», но нет. Почему!? Я объясню, посмотрев на рисунок, расположенный внизу, можно увидеть что треугольник D2E2F2, а точнее две стороны пересекают треугольник А2В2С2 в четырех точках, соответственно используем треугольник D2E2F2,как опорную плоскость.

  • Сторона D2E2 пересекает плоскость А2В2С2 в точках 1 2 и 2 2, эти точки переносим на нижнее изображение: на стороны относительно которых они были найдены и обозначаем 1 1 и 2 1.
  • Точки 1 1 и 2 1 соединяются.
  • Прямая 1 1 2 1 пересекает сторону D1E1 в точке, обозначим Р1 (первая точка найдена).

3.) Сторона E2F2 пересекает стороны B2C2 и A2C2 в точках 4 2 и 3 2. Опускаем их на нижний рисунок и обозначаем 4 1 и 3 1.

4.) Соединяются точки 3 1 и 4 1.

5.) Продливается прямая 3 1 4 1 до пересечения с отрезком E1F1. В месте пересечения ставим точку и обозначаем Н.

6.) Точки P1 и H соединяются. Полученная прямая P1H пересекает отрезок А2С2 в точке K1 (найдена вторая точка).

7.) Переносятся точки P1 и K1, расположенные на отрезках D1E1 и E1F1, на отрезки D2E2 и E2F2. И обозначаются P2 и K2.

8.) Соединяются P2 и K2.

9.) А теперь главный момент: указать видимые и невидимые стороны.

Посмотрите на рисунок снизу. На нем точки D, F, B, C и E находятся в двух проекциях «свободно», но не точка A. Соответственно, относительно ее и необходимо начинать чертить линии.

Пример выполненной работы на эту тему смотрите здесь.

Немного добавлю по этой статье: «Точки пересечения треугольников»

По своему опыту скажу: «чтобы начертить подобный чертеж, необходимо обладать пространственным воображением» и понимать, относительно какой плоскости отталкиваться для решения подобной задачи. Но благодаря этой статьи надеюсь у Вас получится разобраться с темой: пересечение плоских фигур.

Построить линию пересечения треугольников ABC и EDK и показать видимость их в проекциях.
Определить натуральную величину треугольника ABC.

1. Строим проекции треугольника АВС.

2. Строим проекции треугольника EDK.

3. Находим точку пересечения стороны АС с треугольником EDK

4. Находим точку пересечения стороны А B с треугольником EDK и строим линию пересечения MN

5. С помощью конкурирующих точек 4 и 5 определяем видимость треугольников на фронтальной плоскости проекций.

6. С помощью конкурирующих точек 6 и 7 определяем видимость треугольников на горизонтальной плоскости проекций.

7. В треугольнике ABC проводим горизонталь CL и плоскопараллельным перемещением относительно горизонтальной плоскости проекций располагаем горизонталь перпендикулярно фронтальной плоскости проекций.

Строим фронтальную проекцию треугольника ABC . Треугольник должен проецироваться в прямую линию.

8. Определяем действительную величину треугольника ABC и строим на нем линию пересечения MN.

Как проверить, пересекаются ли треугольники?

Моё почтение.
Задача: Сгенерировать 2 рандомных треугольника в системе координат, и проверить, пересекаются ли они.

Решил всё делать через canvas(а как же иначе).
Сгенерировать 2 раза по 3 отрезка (по координатам точек), проверить, что треугольник может получиться из них.
Затем соединить все три отрезка, что бы получились треугольники.

Интересует, как именно можно проверить пересекаются ли они, или нет?
Необходима формула с пояснением, где что.
Благодарю.

  • Вопрос задан более трёх лет назад
  • 2272 просмотра

Оценить 1 комментарий

Решил всё делать через canvas(а как же иначе).

Варианты: не пересекаются, касаются снаружи, пересекаются, один касается другого изнутри, один полностью вложен во второй.

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

Один полностью внутри другого — все вершины треугольника A расположены по одну сторону от сторон второго треугольника B, обходимого по контуру, то есть от отрезков B1B2, B2B3, B3B1.

Касание — вершина одного из треугольников лежит на стороне другого треугольника или сторона одного треугольника параллельна стороне второго и пересекается с ней.

Umid: Ок.
Отрезки AB и CD на плоскости пересекаются если пересекаются их проекции на оси X и Y, точки A и B лежат по разные стороны от отрезка CD, точки C и D лежат по разные стороны от отрезка AB.

Umid: Нарисуйте отрезок AB в системе координат OXY. Теперь из концов отрезка проведите вертикальные линии до пересечения с осью OX. Две получившиеся точки на оси дают новый отрезок, который является проекцией AB на ось OX. Аналогично, горизонтальные линии дадут проекцию на ось OY.

Теперь нарисуйте отрезок AB, поставьте рядом с ним точку C. Дорисуйте ещё один отрезок AC. Направление угла поворота от AB к AC можно найти через знак векторного произведения AB*AC, формулу я привёл выше. Точка C лежит слева от отрезка AB, если поворачивать надо влево, а векторное произведение больше нуля.

» Направление угла поворота от AB к AC можно найти через знак векторного произведения AB*AC, формулу я привёл выше. «

Здесь вы имеете ввиду найти угол между двумя векторами AB и AC?

«Точка C лежит слева от отрезка AB, если поворачивать надо влево, а векторное произведение больше нуля.»

Не понял это предложение, и зачем нам знать слева ли лежит точка C?

1. Получаете уравнения прямой для каждой из сторон каждого треугольника (y=kx+b и cоответствующее уравнение x=(y-b)/k)
обоснование решения: аксиома 1. При пересечении фигур, хотя бы одна вершина одной из фигур будет лежать на другой фигуре.
Далее при чтении см. Рисунок
2. Поочередно подставляете каждую координату каждой из вершин в получившиеся уравнения, красной линией показана геометрическая интерпретация подстановки X синей точки(предполагаемой вершины треугольника). При этом мы подставляем Х синей точки только в уравнения тех линий, у которых этот Х тоже присутствует. Геом. интерпретация — коричневые линии. То есть Х синей точки вне диапазона правой серой линии по Х, потому мы эту линию не проверяем.
Когда будем подставлять У, мы не будем проверять нижнюю линию по этой же причине.
Чтобы вершина, находилась внутри треугольника, вторая координата синей точки должна быть внутри интервала, полученного из уравнений (геом. интерпретация — зеленые линии — тот самый интервал, внутри которого должен быть Y синей точки).
Таким образом, если хоть одна из вершин проходит проверку и по Х и по У, она находится внутри или на поверхности другого треугольника и треугольники пересекаются.

Если не совсем понятно, спрашивайте. А вообще лучше бы вам найти готовый велосипед и не парить себе мозги.

Совсем не понял. Велосипед не могу себе позволить. Задача на городской олимпиаде по информатике встретилась. Скоро будет битва за выход на республиканскую олимпиаду. Хочу подготовиться как следует.

Как получить уравнение прямой?
С остальным тоже не понял.
Если можно, было бы неплохо 1 пример разобрать, если вам не составит труда.

источники:

http://student-com.ru/%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BB%D0%B8%D0%BD%D0%B8%D0%B8-%D0%BF%D0%B5%D1%80%D0%B5%D1%81%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B4%D0%B2%D1%83%D1%85-%D1%82%D1%80%D0%B5%D1%83%D0%B3%D0%BE%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2.html

http://qna.habr.com/q/388763

Навигация

1. Краткое описание
2. Описание алгоритма
3. Модульное тестирование
3.1 Тестирование методом черного ящика
3.2 Тестирование методом белого ящика
3.3 Результаты тестирования и оценка покрытия кода тестами
4. Сборка и настройка
5. Пример

Краткое описание

Консольное приложение было реализовано на языке C++ в среде Microsoft Visual Studio 2019 с использованием библиотеки OpenGL (для визуализации результатов).
Приложение выполняет поиск точек пересечения двух треугольников в 2D-пространстве.
Пользователь вводит 6 вершин (точек) треугольников в консоли (У координат есть ограничения: числа x и y находятся в диапазоне от -300 до 300). На консоли отображается информация о вершинах треугольников и результат пересечения в виде определенного сообщения и точек, в которых пересекаются объекты. Полученная информация визуализируется в всплывающем окне.

Работоспособность исходного кода программы проверяется посредством модульных тестов методами черного и белого ящика. Тестирование было выполнено с использованием модуля CppUnit (Проект машинного модульного теста в MSVS). Оценка покрытия кода тестами была исполнена с помощью плагина OpenCppCoverage.

Описание алгоритма

Алгоритм нахождения точек пересечения двух треугольников:

TriangleIntersectionContour(Polygon &PolygonPoints, Triangle Figure1, Triangle Figure2);

На вход подаются переменные: PolygonPoints, в которую будут записываться найденные точки пересечения; Figure1 – содержатся вершины треугольника 1; Figure2 – вершины треугольника 2.

  1. Находятся уравнения прямых каждой из сторон треугольников по заданным точкам
LinesTriangle(vector<LineEquation>& LinesFigure, Triangle Figure);

LinesFigure – вектор, в который будут записываться уравнения прямых каждой из сторон треугольника. Figure – треугольник.
Уравнения прямых составляются по двум точкам, составляющих сторону треугольника. Уравнение прямой имеет вид:

equation, где:
equation – координата первой точки, equation – координата второй точки.

Каждая линия будет хранить в себе параметр A, B и С. А также первую и вторую точки линии, т.к. они потребуются для определения положения точки на плоскости относительно отрезка, заданного этими точками.
Поскольку задавать точки можно в произвольном порядке, то необходимо их расставить на “свои места”. Таким образом, если:

  • Первая точка меньше второй по координате X, то точки не меняются;
  • Первая точка равна второй по координате X. Смотрим тогда по оси Y. Если первая точка меньше второй, то точки не меняются, иначе – первая точка принимает координаты второй, а вторая координаты первой;
  • Первая точка больше второй по координате X, то точки меняются. Первая = Вторая, а Вторая = Первая.

Эти значения точек потребуются в дальнейшем для проверки полученной точки пересечения (Принадлежит ли она отрезку или нет).

  1. Выполняется поиск точек внутри треугольника
SearchPointInTriangle(Polygon& PolygonPoints, vector<LineEquation> LinesFigure1, Triangle Figure2);

PolygonPoints – переменная для хранения найденных точек; LinesFigure1 – линии треугольника 1; Figure2 – треугольник 2.
В каждое уравнение прямой сторон треугольника 1 необходимо подставить каждую вершину треугольника 2. Это положение можно записать в виде системы уравнений:

equation

Положение точки вычисляется в зависимости от выполнения следующих условий:

  • Если значение каждого из уравнений прямых > 0, то точка треугольника 2 располагается внутри треугольника 1;
  • Если значение каждого из уравнений прямых < 0, то точка треугольника 2 располагается внутри треугольника 1;
  • В остальных случаях – точка располагается снаружи или на прямой, если значение хотя бы одного из уравнений = 0.

Далее, необходимо выполнить проверку на то, сколько у нас нашлось точек. Если нашлось три точки, то это значит, что один треугольник располагается во втором. Если ноль, то необходимо рассматривать следующий треугольник и выполнить те же самые проверки.

  1. Поиск точек пересечения треугольника
IntersectionOfLines(Polygon& PolygonPoints, LineEquation Eq1, LineEquation Eq2);

PolygonPoints – переменная для хранения найденных точек; Eq1 – уравнение прямой треугольника 1; Eq2 – уравнение прямой треугольника 1.
Для каждой прямой треугольника 1 будет искаться возможное пересечение с каждой прямой треугольника 2.
Итак, для того, чтобы определить точку пересечения прямых на плоскости, необходимо решить систему линейных уравнений, состоящую из уравнений этих прямых.

equation, где:
Координата (x,y) является точкой пересечения прямых, т.е. принадлежит данным уравнениям прямых.

Данная СЛАУ может быть решена методом Крамера. Этот метод основан на поиске ненулевого определителя.
Тогда, следует переписать наше СЛАУ в виде:

equation

Далее необходимо найти три определителя – equation. Которые потребуются для расчета координат х и у.

equation

Если на этапе вычисления общего определителя D выясняется, что он = 0, то это означает, что данные линии треугольников не пересекаются и дальнейшие вычисления не производятся.
Иначе,

equation — определитель для координаты x;
equation — определитель для координаты y.

Координаты x и y находятся следующим образом:

equation
equation

3.1 Необходимо определить положение найденной точки

Ясное дело, что найденная точка принадлежит прямой. Но, поскольку, сама прямая является бесконечной, то не факт, что данная точка будет принадлежать двум сторонам треугольников, т.к. точка пересечения прямых может быть где-то далеко за пределами этих треугольников. Поэтому, перед тем, как сохранить найденную точку, необходимо выполнить проверку на ее положение.
Теперь нам потребуются точки, которые мы сохраняли для прямых в пункте 1. Будем сопоставлять найденные точки, относительно отрезков (первая-вторая точка).
Для определения положения точки были определены следующие правила:

  • По координате х. Если найденная точка меньше первой или больше второй точки 1-ого уравнения прямой или меньше первой или больше второй точки 2-ого уравнения прямой, то точка располагается сзади или спереди отрезков;
  • По координате х. Если найденная точка равна первой и второй точке 1-ого уравнения прямой, то это вертикальная линия. Тогда смотрим по координате Y. Если найденная точка меньше первой или больше второй точки 1-ого уравнения прямой, то точка располагается ниже или выше отрезков;
  • По координате х. Если найденная точка равна первой и второй точке 2-ого уравнения прямой, то это вертикальная линия. Тогда смотрим по координате Y. Если найденная точка меньше первой или больше второй точки 2-ого уравнения прямой, то точка располагается ниже или выше отрезков;
  • Если найденная точка равна одной из вершин, то необходимо проверить была ли она добавлена раннее на одном из этапов поиска (Это значит, что треугольники соприкасаются и эту точку образуют больше двух линий);
  • В остальных случаях выполняется сохранение точки.

Модульное тестирование

Тестирование методом черного ящика

Тестирование методом черного ящика подразумевает под собой, что исходный код не известен. И тесты составляются, полагаясь на спецификацию и технические требования.
Исходя из поставленной задачи (разработка алгоритма поиска точек пересечения двух треугольников в 2d-пространстве), можно выделить следующие варианты проверок для тестирования методом черного ящика:

  • Два треугольника не пересекаются;
  • Два треугольника имеют 1 точку пересечения (соприкасаются);
  • Два треугольника имеют 2 точки пересечения (соприкасаются);
  • Два треугольника имеют 3 точки пересечения;
  • Два треугольника имеют 4 точки пересечения;
  • Два треугольника имеют 5 точек пересечения;
  • Два треугольника имеют 6 точек пересечения;
  • Проверка на значимость положения вершин треугольника. Т.е., что будет, если вершины треугольника поменять местами. Будет ли результат идентичен;
  • Координаты треугольников находятся в одной точке (Ввод 6 одинаковых точек);
  • Координаты одного из треугольников образуют линию (т.е. будет ли приниматься такое, что три точки образуют не треугольник и с этими данными определяться точки пересечения);

Спецификация на тесты методом черного ящика

Тестирование методом белого ящика

В тестировании методом белого ящика предполагается, что исходный код программы известен. По этому методу следует проверить все ветви программы.
Исходя из выше сказанного, можно предложить следующие варианты проверок для тестирования методом белого ящика:

  1. Тестирование метода TriangleIntersectionContour (поиск точек пересечения треугольников):
  • Треугольник 2 в треугольнике 1;
  • Имеются точки треугольника 2 внутри треугольника 1 (1-2 точки);
  • Треугольник 1 в треугольнике 2;
  • В треугольнике 1 не было найдено точек. В треугольнике 2 были найдены точки (1-2 точки).
  1. Тестирование метода SearchPointInTriangle (поиск точек внутри треугольника):
  • Внутри треугольника есть точки;
  • Внутри треугольника точек нет.
  1. Тестирование метода IntersectionOfLines (поиск точки пересечения линий):
  • Линии не пересекаются;
  • Линии пересекаются. Точка пересечения прямых располагается за пределами треугольников относительно оси Х (Если посмотреть на координатную плоскость, то слева или справа от объектов, сравнивая значения точки пересечения и точек отрезков на рассматриваемых линиях по оси Х);
  • Линии пересекаются. Линия 1 – вертикальная линия. Точка пересечения располагается выше или ниже отрезка линии 1 относительно оси Y;
  • Линии пересекаются. Линия 2 – вертикальная линия. Точка пересечения располагается выше или ниже отрезка линии 2 относительно оси Y;
  • Линии пересекаются. Точка пересечения — точка соприкосновения двух отрезков (Начальная/конечная точка отрезка лежит на другом отрезке);
  • Линии пересекаются. У отрезков имеется одинаковая точка начала/конца;
  • Линии пересекаются. У отрезков имеется одинаковая точка начала/конца, но она была добавлена ранее (Ситуация, когда имеется общая вершина. Такую вершину пересекают 4 линии от двух треугольников).
  1. Тестирование метода IsIdenticalTriangles (проверка на идентичность треугольников):
  • Два треугольника совпадают;
  • Два треугольника не совпадают.

Спецификация на тесты методом белого ящика

Результаты тестирования и оценка покрытия кода тестами

Результаты тестирования методом черного ящика

Результаты тестирования методом белого ящика

Оценка покрытия кода тестами методом черного ящика

Оценка покрытия кода тестами методом белого ящика

Оценка общего покрытия кода тестами

Сборка и настройка

  1. Загрузить проект на локальную машину, воспользовавшись командой git clone
  2. Открыть проект UCPOLab2Ver2.sln в Microsoft Visual Studio
  3. Выставить конфигурацию Debug x86. (для библиотеки glut32.lib. Гайд по установке библиотеки тут)
  4. В свойствах к каждому проекту с тестами: перейти в «Компоновщик» → «Общие» → «Дополнительные каталоги библиотек» и указать путь до .obj файлов

Например, C:UsersrenneDesktoptestIntersection-points-of-two-trianglesUCPOLab2Ver2Debug

  1. Указать ссылки для проектов с тестами: Кликнуть пкм по проекту одного из тестов → Добавить → Ссылка. Выбрать UCPOLab2Ver2
  2. Собрать решение в обозревателе
  3. Запустить проект UCPOLab2Ver2 (Консольное приложение для поиска точек пересечения двух треугольников)

Запуск тестов:
Вкладка «Тест» → «Обозреватель тестов» → «Выполнить все тесты в представлении»

Оценка покрытия кода тестами:
8. Установить расширение для MSVS OpenCppCoverage. Ссылка на расширение
С гайдом по расширению можно ознакомиться здесь

Я долго тупила с настройкой этого плагина. Поэтому сокращенный вариант настройки оставлю здесь.
Настройка плагина OpenCppCoverage:

  • Кликнуть пкм по проекту одного из тестов (например, TestingWhiteBox) → перейти к пункту «OpenCppCoverage Settings»
  • В пункте «Program to run» указать путь до приложения MSVS, который выполняет тесты — vstest.console.exe

Например, C:Program Files (x86)Microsoft Visual Studio2019CommunityCommon7IDECommonExtensionsMicrosoftTestWindowvstest.console.exe

  • В пункте «Arguments» указать путь до .dll файла проекта с тестами (TestingWhiteBox.dll)

Например, C:UsersrenneDesktoptestIntersection-points-of-two-trianglesDebugTestingWhiteBox.dll

  • В пункте «Working Directory» указать путь к рабочей директории

Например, C:UsersrenneDesktoptestIntersection-points-of-two-trianglesTestingWhiteBox

(Важно!) В пути должны отсутствовать папки(файлы) с наименованием на русском языке.

  • Нажать Run Coverage
    Для остальных проектов проделать все то же самое.

    Пример

    Пользовательский ввод и вывод результата в консоли

Визуализация результата

Как построить линию пересечения двух треугольников

Начертательная геометрия является базой для многих теоретических разработок в области технического черчения. Знание этой теории в построении изображений геометрических объектов нужно для того, чтобы достоверно выразить свои идеи с помощью чертежа.

Как построить линию пересечения двух треугольников

Инструкция

Задачу по построению линии пересечения для 2-х плоскостей можно назвать базовой в теории технического черчения. Чтобы образовать линию пересечения для 2-х треугольников, нужно определить точки, принадлежащие обеим плоским фигурам.

Для решения задачи постройте два треугольника ABC и EDK во фронтальной и горизонтальной проекции. Затем проведите через сторону AB в треугольнике ABC вспомогательную плоскость Pн, ее горизонтальную проекцию. Данная горизонтальная плоскость образует линию пересечения 1-2 с плоскостью второго треугольника EDK, где точки 1 и 2 находятся на сторонах ED и EK.

Таким же образом найдите линию пересечения 1′-2′ горизонтально проецирующей плоскости Pн, проведенной через сторону A′B′ во фронтальной проекции треугольника ABC. Фронтальные проекции 1′-2′ и A′B′ пересекаются между собой и дают точку пересечения M′, ее фронтальную проекцию.

Проведите линию связи от фронтальной проекции к горизонтальной проекции и таким образом найдите горизонтальную проекцию точки M.

Определите вторую точку пересечения плоскостей треугольника ABC и треугольника EDK, для чего проведите через сторону DK в треугольнике EDK вспомогательную плоскость Qv, ее фронтальную проекцию. Линией пересечения плоскости Qv с плоскостью треугольника ABC становится линия 3-4 и линия 3′-4′ в ее фронтальной проекции. Горизонтальные проекции 3-4 и DK пересекаются между собой и дают точку пересечения N, ее горизонтальную проекцию.

Проведите линию связи от горизонтальной проекции к фронтальной проекции и таким образом найдите точку N′, ее фронтальную проекцию.

Соедините точки проекции линии пересечения MN и линии пересечения M′N′. В результате вы получите две линии пересечения треугольников EDK и ABC в их фронтальной и горизонтальной проекции.

Видео по теме

Источники:

  • пересечение плоскостей треугольников

Войти на сайт

или

Забыли пароль?
Еще не зарегистрированы?

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Понравилась статья? Поделить с друзьями:
  • Как найти фильм чудо
  • Как найти проекции точки на треугольной пирамиде
  • Как найти периметр квадрата 3см 2мм
  • Как найти площадь квадрата зная его диагональ
  • Как найти оптимальную партию товара