В основном я пытаюсь смоделировать некоторые кисти карты, которые имеют следующий формат:
Каждая кисть определяет сплошную область. Кисти определяют эту область как пересечение четырех или более плоскостей. Каждая плоскость определяется тремя неколинейными точками. Эти точки должны идти по часовой стрелке:
1--2----------------->
|
3
|
|
|
|
|
,
Каждый оператор кисти выглядит так:
{
( 128 0 0 ) ( 128 1 0 ) ( 128 0 1 ) GROUND1_6 0 0 0 1.0 1.0
( 256 0 0 ) ( 256 0 1 ) ( 256 1 0 ) GROUND1_6 0 0 0 1.0 1.0
( 0 128 0 ) ( 0 128 1 ) ( 1 128 0 ) GROUND1_6 0 0 0 1.0 1.0
( 0 384 0 ) ( 1 384 0 ) ( 0 384 1 ) GROUND1_6 0 0 0 1.0 1.0
( 0 0 64 ) ( 1 0 64 ) ( 0 1 64 ) GROUND1_6 0 0 0 1.0 1.0
( 0 0 128 ) ( 0 1 128 ) ( 1 0 128 ) GROUND1_6 0 0 0 1.0 1.0
}
Вероятно, это немного сбивает с толку, когда вы впервые видите это. Он определяет прямоугольную область, которая простирается от (128,128,64) до (256,384,128). Вот что означает одна строка:
( 128 0 0 ) ( 128 1 0 ) ( 128 0 1 ) GROUND1_6 0 0 0 1.0 1.0
1st Point 2nd Point 3rd Point Texture
Мне нужно найти точки пересечения, чтобы я мог нарисовать фигуру только с помощью метода, который позволяет рисовать 2d панели в трехмерном пространстве.
Следующий код нарисует треугольник в пространстве, например:
beginShape();
vertex(x0,y0,z0);
vertex(x1,y1,z1);
vertex(x2,y2,z2);
vertex(x0,y0,z0);
endShape();