2014-11-24 2 views
0

У меня есть куб, который делает некоторый угол с осью X.Почему куб не генерируется должным образом

Для этого я написал мои кубические вершины, как это:

cubeX=[ 

     0 cosd(theta) (cosd(theta)+sind(theta)) sind(theta) %bottom 

     0 cosd(theta) (cosd(theta)+sind(theta)) sind(theta) %top 

     0 cosd(theta) cosd(theta) 0 %front 

     0 cosd(theta) cosd(theta) 0 %back 

     sind(theta) 0 0 sind(theta) % left 

     (cosd(theta)+sind(theta)) cosd(theta) cosd(theta) (cosd(theta)+sind(theta)) % right 

     ]*side; 

cubeY=[ 

     0 -sind(theta) (cosd(theta)-sind(theta)) cosd(theta) %bottom 

     0 -sind(theta) (cosd(theta)-sind(theta)) cosd(theta) %top 

     0 -sind(theta) -sind(theta) 0 %front 

     0 -sind(theta) -sind(theta) 0 %back 

     cosd(theta) 0 0 cosd(theta) %left 

     (cosd(theta)-sind(theta)) -sind(theta) -sind(theta) (cosd(theta)-sind(theta)) %right 

     ]*side; 


cubeZ=[ 

     0 0 0 0 %bottom 

     1 1 1 1 %top 

     0 0 1 1 

     0 0 1 1 

     0 0 1 1 

     0 0 1 1 

     ]*side; 

Но когда я сюжет это, используя plot3(cubeX,cubeY,cubeZ) одну линию т.е. нижняя правая линия не обращается

Может кто-то пожалуйста, объясните, что я, возможно, делает неправильно

cube generated by matlab

Также прилагается изображение, которое показывает угол с осью X enter image description here

ответ

0

Вам необходимо закрыть каждое из ваших лиц ... что каждый квадрат, который вы рисуете, нуждается в 5 точках вместо 4. Последний пункт (5-й пункт) должен быть так же как и первая точка. Например:

cubeX=[ 

     0 cosd(theta) (cosd(theta)+sind(theta)) sind(theta) 0 %bottom 

     0 cosd(theta) (cosd(theta)+sind(theta)) sind(theta) 0 %top 

     0 cosd(theta) cosd(theta) 0 0 %front 

     0 cosd(theta) cosd(theta) 0 0 %back 

     sind(theta) 0 0 sind(theta) sind(theta) % left 

     (cosd(theta)+sind(theta)) cosd(theta) cosd(theta) (cosd(theta)+sind(theta)) (cosd(theta)+sind(theta)) % right 

     ]*side; 

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

Кроме того, ваши cubeX, cubeY и cubeZ могут быть неправильной формой для вашего намерения. Я ожидаю, что у них будет 4 (сейчас 5) строк и 6 столбцов. Вы можете попробовать их транспонирование ...

plot3(cubeX',cubeY',cubeZ') 
Смежные вопросы