翻转立方体为什么在3ds Max9里面翻转立方体的法线后,从外面看不见里面的东西?
翻转立方体 时间:2021-07-06 阅读:(
)
可不可以告诉我用AE做旋转立方体的详细步骤?感谢
首先,你创建一个方形像素的固态层solid,然后打开后面的三维盒子
第二:再把这个固态层复制5个。
第三:新建一个摄像机,按“C”键 可以切换 摄像机的移动、旋转、缩放。
第四:你再把 前面复制的5个固态层调节它的position(位移),Rotation(旋转)。
使这六个固态层接缝出没有缝隙就可以了。
第五:如果你想让这个盒子旋转,那你就新建一个Comp合成,然后再把 上面的那个合成拖到 新建的这个Comp里面,然后打开塌陷开关,就可以了这是个旋转正方体的java代码,请高手添加注释和必要的说明
import java.awt.*;
import java.applet.*;
public class Wuerfel extends Applet {
double p[][] = new double[9][4]; //绘制正方体的顶点的数组
int x=1, y=2, z=3;
public void init() {
setSize(600, 480);
setBackground(new Color(255,255,255)); //背景色设置为白色
p[1][x] = -100; p[1][y] = -100; p[1][z] = -100; //下列数组为正方体的各个边
p[2][x] = +100; p[2][y] = -100; p[2][z] = -100;
p[3][x] = +100; p[3][y] = -100; p[3][z] = +100;
p[4][x] = -100; p[4][y] = -100; p[4][z] = +100;
p[5][x] = -100; p[5][y] = +100; p[5][z] = -100;
p[6][x] = +100; p[6][y] = +100; p[6][z] = -100;
p[7][x] = +100; p[7][y] = +100; p[7][z] = +100;
p[8][x] = -100; p[8][y] = +100; p[8][z] = +100;
}
double angle_x = 0.01; //X轴旋转速度,参数越大,转速越大
double angle_y = 0.0075; //Y轴旋转速度,参数越大,转速越大
double angle_z = 0.005; //Z轴旋转速度,参数越大,转速越大
Image buffer;
Graphics2D gBuffer;
public void paint(Graphics g) { //绘图方法
if (buffer==null) {//判定程序是否为初始化,即正方体是否已经被绘制
buffer=createImage(this.getSize().width, this.getSize().height);
//获取关于Image的Graphics2D对象,用于绘图
gBuffer=(Graphics2D)buffer.getGraphics();
}
//清空绘图区域
gBuffer.clearRect(0,0,this.getSize().width, this.getSize().height);
//设置图像的表现模式,此处设置图形抗锯齿
gBuffer.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//以下为汇整整个正方体
gBuffer.drawLine((int)(p[1][x])+200,(int)(p[1][y])+200,(int)(p[2][x])+200,(int)(p[2][y])+200);
gBuffer.drawLine((int)(p[2][x])+200,(int)(p[2][y])+200,(int)(p[3][x])+200,(int)(p[3][y])+200);
gBuffer.drawLine((int)(p[3][x])+200,(int)(p[3][y])+200,(int)(p[4][x])+200,(int)(p[4][y])+200);
gBuffer.drawLine((int)(p[4][x])+200,(int)(p[4][y])+200,(int)(p[1][x])+200,(int)(p[1][y])+200);
gBuffer.drawLine((int)(p[5][x])+200,(int)(p[5][y])+200,(int)(p[6][x])+200,(int)(p[6][y])+200);
gBuffer.drawLine((int)(p[6][x])+200,(int)(p[6][y])+200,(int)(p[7][x])+200,(int)(p[7][y])+200);
gBuffer.drawLine((int)(p[7][x])+200,(int)(p[7][y])+200,(int)(p[8][x])+200,(int)(p[8][y])+200);
gBuffer.drawLine((int)(p[8][x])+200,(int)(p[8][y])+200,(int)(p[5][x])+200,(int)(p[5][y])+200);
gBuffer.drawLine((int)(p[1][x])+200,(int)(p[1][y])+200,(int)(p[5][x])+200,(int)(p[5][y])+200);
gBuffer.drawLine((int)(p[2][x])+200,(int)(p[2][y])+200,(int)(p[6][x])+200,(int)(p[6][y])+200);
gBuffer.drawLine((int)(p[3][x])+200,(int)(p[3][y])+200,(int)(p[7][x])+200,(int)(p[7][y])+200);
gBuffer.drawLine((int)(p[4][x])+200,(int)(p[4][y])+200,(int)(p[8][x])+200,(int)(p[8][y])+200);
g.drawImage (buffer, 0, 0, this);//完成整个空间的绘制
try {
//线程休眠10毫秒,此处的作用相当于给旋转正方体一个时间间隔,若不休眠,正方体的旋转式不容易看出的
Thread.sleep(10);
} catch (InterruptedException e) {}
double px, py, pz; //正方体顶点旋转后坐标
for (int i=1;i<9;i++) {
px = p[i][x]; //顶点旋转前X坐标
py = p[i][y]; //顶点旋转前Y坐标
pz = p[i][z]; //顶点旋转前Z坐标
//X轴旋转变换
p[i][y] = py*Math.cos(angle_x)-pz*Math.sin(angle_x);
p[i][z] = py*Math.sin(angle_x)+pz*Math.cos(angle_x);
py = p[i][y]; //X轴变换后坐标
pz = p[i][z];
//Y轴旋转变换
p[i][x] = px*Math.cos(angle_y)+pz*Math.sin(angle_y);
p[i][z] =-px*Math.sin(angle_y)+pz*Math.cos(angle_y);
px = p[i][x]; //变换后坐标
//Z轴旋转变换
p[i][x] = px*Math.cos(angle_z)-py*Math.sin(angle_z);
p[i][y] = py*Math.cos(angle_z)+px*Math.sin(angle_z);
}
repaint(); //重绘,即重新调用paint方法
}
public void update(Graphics g) {paint(g);}
}
这个类最核心的地方还是在paint方法,paint中最核心的部分又是关于坐标的旋转变换和sleep休眠,整个程序看下来还是不难理解的.
程序通过二维数组存储正方体的顶点坐标,初次绘制,然后调用线程重复旋转变换顶点坐标,然后重绘变换后的顶点坐标.因为有sleep,所以每次时间间隔后重绘的图像会和前一图像连续形成整体旋转动画。
关于旋转速度参数很重要,整个程序可以通过改变它来控制转速。
为什么在3ds Max9里面翻转立方体的法线后,从外面看不见里面的东西?
法线,决定面的正反面,法线方向是正面,相反的是背面。
3DMAX默认是只显示正面的,因此反转法线后,外面为背面,看不见是应该的。
可以移动相机到方体内侧,可看见里面的面,因为法线反转了,里面为正面。
在面板最右面有个显示器图标的,在里面可以设定显示方式:正面可见,2面都可见。
好多年没玩3DMAX了,介绍方法时有点含糊··
Contabo是一家运营了20多年的欧洲老牌主机商,之前主要是运营德国数据中心,Contabo在今年4月份增设新加坡数据中心,近期同时新增了美国纽约和西雅图数据中心。全球布局基本完成,目前可选的数据中心包括:德国本土、美国东部(纽约)、美国西部(西雅图)、美国中部(圣路易斯)和亚洲的新加坡数据中心。Contabo的之前国外主机测评网站有多次介绍,他们家的特点就是性价比高,而且这个高不是一般的高,是...
青果网络QG.NET定位为高效多云管理服务商,已拥有工信部颁发的全网云计算/CDN/IDC/ISP/IP-VPN等多项资质,是CNNIC/APNIC联盟的成员之一,2019年荣获国家高薪技术企业、福建省省级高新技术企业双项荣誉。那么青果网络作为国内主流的IDC厂商之一,那么其旗下美国洛杉矶CN2 GIA线路云服务器到底怎么样?官方网站:https://www.qg.net/CPU内存系统盘流量宽带...
至今为止介绍了很多UCLOUD云服务器的促销活动,UCLOUD业者以前看不到我们的个人用户,即使有促销活动,续费也很少。现在新用户的折扣力很大,包括旧用户在内也有一部分折扣。结果,我们的用户是他们的生存动力。没有共享他们的信息的理由是比较受欢迎的香港云服务器CN2GIA线路产品缺货。这不是刚才看到邮件注意和刘先生的通知,而是补充UCLOUD香港云服务器、INTELCPU配置的服务器。如果我们需要他...
翻转立方体为你推荐
元数据管理请元数据管理包括哪些内容?一物一码什么是一物一码、一品一码?谁家做的比较好啊?settimervc++6.0 settimer函数是怎么用的啊,能给个例子在讲解一下行么fclose为什么fclose之后remove还是不成功李昊天铠甲勇士2刑天的李昊天秘密是什么备忘录模式手机如何设置备忘录提醒欢迎页面windows欢迎界面ruby语言Ruby语言输入方法法layoutsubviews如何自定义UISearchBar?清除电脑垃圾怎么删除电脑垃圾?
香港服务器租用99idc 火山主机 本网站服务器在美国维护 edgecast 大硬盘 edis softbank官网 godaddy 美国php空间 阿里云浏览器 双十一秒杀 秒杀汇 卡巴斯基试用版 免费高速空间 爱奇艺vip免费领取 江苏双线服务器 网通服务器 国外在线代理服务器 什么是web服务器 个人免费邮箱 更多