Модератор: Mikle
Нужно просто ответить на вопрос: Есть ли пересечение?Mikle писал(а):Vovik
Сначала находишь пересечение куба с плоскостью, содержащей треугольник, далее уже полученной фигуры с треугольником.
И вообще, что нужно? Узнать пересекается, или нет, или найти фигуру пересечения?
Function TestTriangleIntersectWithCube(Cube as MYCUBE, Triang() AS MYVECTOR) As Boolean
Dim Summator As Long
Summator = PointInBox(Cube, Triang(0)) + _
PointInBox(Cube, Triang(1)) + _
PointInBox(Cube, Triang(2))
TestTriangleIntersectWithCube = (Summator = 1) or (Summator = 2)
End Function
Function TestTriangleIntersectWithCube(Cube as MYCUBE, Triang() AS MYVECTOR) As Boolean
TestTriangleIntersectWithCube = True
If LineIntersectBox(Cube, Triang(0), Triang(1)) Then
Exit Function
ElseIf LineIntersectBox(Cube, Triang(1), Triang(2)) Then
Exit Function
ElseIf LineIntersectBox(Cube, Triang(2), Triang(0)) Then
Exit function
End if
TestTriangleIntersectWithCube = False
End Function
keks-n писал(а):Зачем плодить треугольники? Есть способ узнать, пересекает ли отрезок куб. Проверяем все 3 ребра треугольника.
В том-то и дело, что треугольник вся плоская фигура... Я думал проецировать куб и грани треугольника на плоскости XY, XZ, ZY и смотреть пересечение квадрата с прямыми, но с очень-очень большим треугольником не катит...tyomitch писал(а):keks-n писал(а):Зачем плодить треугольники? Есть способ узнать, пересекает ли отрезок куб. Проверяем все 3 ребра треугольника.
Треугольником считается вся плоская фигура, или только её граница?
Если вся, то пересекать рёбра мало.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8