Задать вопрос
@vadimstroganov

Как спроецировать фигуру на плоскость?

Здравствуйте!
Никак не могу понять как спроецировать фигуру на плоскость.
Допустим я задаю четырехугольник в плоскости XYZ с точками:
A = (x1,y1,z1)
B = (x2,y2,z2)
C = (x3,y3,z3)
D = (x4,y4,z4)


Мне нужно получить примерно что-то такое, как изображено на картинке:
46d8807c604446e8a55b9a07651bac2a.jpg

Я хочу задать фигуру в 3d пространстве, и потом вывести ее проекцию на 2d плоскости

Я хочу взять проекцию каждой точки, получить новые 4 точки с координатами (x,y) и построить уже их в декартовой системе координат. Но я не могу понять как имея точку с координатами (x,y,z) перевести в (x,y)

Подскажите пожалуйста, буду признателен за любую помощь
  • Вопрос задан
  • 2964 просмотра
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
Olej
@Olej
инженер, программист, преподаватель
Но я не могу понять как имея точку с координатами (x,y,z) перевести в (x,y)

Вообще то, это элементарная задача из курса начертательно геометрии (1-й курс).
И во многом зависит от того, каким образом у вас задаётя плоскость.
Ответ написан
Mrrl
@Mrrl
Заводчик кардиганов
Чтобы найти точку "в плоскости", вам нужно задать в ней систему координат. То есть, выбрать точку начала координат O(x0,y0,z0) и два базисных вектора X=(x1,y1,z1) и Y=(x2,y2,z2). Судя по тому, что вы говорите про "декартову систему координат", векторы должны быть единичной длины и перпендикулярны друг другу.
Добавляете к системе вектор Z, параллельно которому идёт проектирование. Из условия непонятно, рассматриваете вы только ортогональную проекцию, или общий случай параллельной проекции.
В случае ортогональной всё просто - не нужно даже возиться с матрицами:
вектор Z вычисляется как векторное произведение X и Y, но он нам не нужен вообще: если проектируемая точка P имеет координаты (x,y,z), то её проекция Q будет иметь координаты (в системе координат плоскости)
x'=(P-O,X)=(x-x0)*x1+(y-y0)*y1+(z-z0)*z1
y'=(P-O,Y)=(x-x0)*x2+(y-y0)*y2+(z-z0)*z2.
В случае косоугольной проекции вычисления сложнее - надо умножать вектор (P-O) на матрицу, обратную к матрице, составленной из X,Y,Z. И там главное не запутаться, где строки, а где столбцы.
Ответ написан
antonsosnitzkij
@antonsosnitzkij
студент, житель санкт-петербурга
Не совсем понял вопрос, хочу уточнить: плоскость, на которую вы хотите сделать проекцию - это произвольная плоскость или же подразумевается плоскость, образованная осями координат(xy yz xz)?
потому что если второе - то получается все банально. Вы просто берете координаты этих же точек, располагаете на плоскости. Видимость определяется координатой Z. в данном случае это излишняя информация, ведь вы просто проецируете плоскую фигуру на плоскость.
Напишите в комментарий, если Вы меня не совсем поняли или я Вас неправильно понял
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы