我有一个与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)
绘制它时
一行,即右下角未绘制
有人可以解释一下我可能做错了吗
还附有显示X轴角度的图像
答案 0 :(得分: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')