📄 corners.java
字号:
/*
* @(#)Corners.java 1.3 98/02/20 14:30:07
*
* Copyright (c) 1996-1998 Sun Microsystems, Inc. All Rights Reserved.
*
* Sun grants you ("Licensee") a non-exclusive, royalty free, license to use,
* modify and redistribute this software in source and binary code form,
* provided that i) this copyright notice and license appear on all copies of
* the software; and ii) Licensee does not utilize the software in a manner
* which is disparaging to Sun.
*
* This software is provided "AS IS," without a warranty of any kind. ALL
* EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
* IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
* LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
* OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
* LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
* INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
* CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
* OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*
* This software is not designed or intended for use in on-line control of
* aircraft, air traffic, aircraft navigation or aircraft communications; or in
* the design, construction, operation or maintenance of any nuclear
* facility. Licensee represents and warrants that it will not use or
* redistribute the Software for such purposes.
*/
package Java3DApplet;
import java.applet.Applet;
import java.awt.event.*;
import javax.media.j3d.*;
import javax.vecmath.*;
public class Corners extends Object {
private Group group;
private Shape3D shape1;
private Shape3D shape2;
private Shape3D shape3;
private Shape3D shape4;
private Shape3D shape5;
private Shape3D shape6;
private Shape3D shape7;
private Shape3D shape8;
private static final float[] verts1 = {
// Front Face
-1.05f, 0.45f, 1.05f, -0.45f, 0.45f, 1.05f,
-0.45f, 1.05f, 1.05f, -1.05f, 1.05f, 1.05f,
// Back Face
-1.05f, 0.45f, 0.45f, -1.05f, 1.05f, 0.45f,
-0.45f, 1.05f, 0.45f, -0.45f, 0.45f, 0.45f,
// Right Face
-0.45f, 0.45f, 1.05f, -0.45f, 0.45f, 0.45f,
-0.45f, 1.05f, 0.45f, -0.45f, 1.05f, 1.05f,
// Left Face
-1.05f, 0.45f, 0.45f, -1.05f, 0.45f, 1.05f,
-1.05f, 1.05f, 1.05f, -1.05f, 1.05f, 0.45f,
// Top Face
-1.05f, 1.05f, 1.05f, -0.45f, 1.05f, 1.05f,
-0.45f, 1.05f, 0.45f, -1.05f, 1.05f, 0.45f,
// Bottom Face
-1.05f, 0.45f, 0.45f, -0.45f, 0.45f, 0.45f,
-0.45f, 0.45f, 1.05f, -1.05f, 0.45f, 1.05f,
};
private static final float[] verts2 = new float[72];
private static final float[] verts3 = new float[72];
private static final float[] verts4 = new float[72];
private static final float[] verts5 = new float[72];
private static final float[] verts6 = new float[72];
private static final float[] verts7 = new float[72];
private static final float[] verts8 = new float[72];
private static final float[] normals = {
// Front Face
0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f,
0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f,
// Back Face
0.0f, 0.0f, -1.0f, 0.0f, 0.0f, -1.0f,
0.0f, 0.0f, -1.0f, 0.0f, 0.0f, -1.0f,
// Right Face
1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
// Left Face
-1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f,
-1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f,
// Top Face
0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
// Bottom Face
0.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f,
0.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f,
};
private static final float[] textCoords = {
// Front Face
1.0f, 0.0f, 1.0f, 1.0f,
0.0f, 1.0f, 0.0f, 0.0f,
// Back Face
1.0f, 0.0f, 1.0f, 1.0f,
0.0f, 1.0f, 0.0f, 0.0f,
// Right Face
1.0f, 0.0f, 1.0f, 1.0f,
0.0f, 1.0f, 0.0f, 0.0f,
// Left Face
1.0f, 0.0f, 1.0f, 1.0f,
0.0f, 1.0f, 0.0f, 0.0f,
// Top Face
1.0f, 0.0f, 1.0f, 1.0f,
0.0f, 1.0f, 0.0f, 0.0f,
// Bottom Face
1.0f, 0.0f, 1.0f, 1.0f,
0.0f, 1.0f, 0.0f, 0.0f
};
public Corners(Appearance appearance) {
int i;
for (i=0; i<72; i+=3) {
verts2[i] = verts1[i] + 1.5f;
verts2[i+1] = verts1[i+1];
verts2[i+2] = verts1[i+2];
}
for (i=0; i<72; i+=3) {
verts3[i] = verts2[i];
verts3[i+1] = verts2[i+1] - 1.5f;
verts3[i+2] = verts2[i+2];
}
for (i=0; i<72; i+=3) {
verts4[i] = verts1[i];
verts4[i+1] = verts1[i+1] - 1.5f;
verts4[i+2] = verts1[i+2];
}
for (i=0; i<72; i+=3) {
verts5[i] = verts1[i];
verts5[i+1] = verts1[i+1];
verts5[i+2] = verts1[i+2]- 1.5f;
verts6[i] = verts2[i];
verts6[i+1] = verts2[i+1];
verts6[i+2] = verts2[i+2] - 1.5f;
verts7[i] = verts3[i];
verts7[i+1] = verts3[i+1];
verts7[i+2] = verts3[i+2] - 1.5f;
verts8[i] = verts4[i];
verts8[i+1] = verts4[i+1];
verts8[i+2] = verts4[i+2] - 1.5f;
}
QuadArray quadArray1 = new QuadArray(24, QuadArray.COORDINATES |
QuadArray.NORMALS |
QuadArray.TEXTURE_COORDINATE_2);
quadArray1.setCoordinates(0, verts1);
quadArray1.setNormals(0, normals);
quadArray1.setTextureCoordinates(0, textCoords);
QuadArray quadArray2 = new QuadArray(24, QuadArray.COORDINATES |
QuadArray.NORMALS |
QuadArray.TEXTURE_COORDINATE_2);
quadArray2.setCoordinates(0, verts2);
quadArray2.setNormals(0, normals);
quadArray2.setTextureCoordinates(0, textCoords);
QuadArray quadArray3 = new QuadArray(24, QuadArray.COORDINATES |
QuadArray.NORMALS |
QuadArray.TEXTURE_COORDINATE_2);
quadArray3.setCoordinates(0, verts3);
quadArray3.setNormals(0, normals);
quadArray3.setTextureCoordinates(0, textCoords);
QuadArray quadArray4 = new QuadArray(24, QuadArray.COORDINATES |
QuadArray.NORMALS |
QuadArray.TEXTURE_COORDINATE_2);
quadArray4.setCoordinates(0, verts4);
quadArray4.setNormals(0, normals);
quadArray4.setTextureCoordinates(0, textCoords);
QuadArray quadArray5 = new QuadArray(24, QuadArray.COORDINATES |
QuadArray.NORMALS |
QuadArray.TEXTURE_COORDINATE_2);
quadArray5.setCoordinates(0, verts5);
quadArray5.setNormals(0, normals);
quadArray5.setTextureCoordinates(0, textCoords);
QuadArray quadArray6 = new QuadArray(24, QuadArray.COORDINATES |
QuadArray.NORMALS |
QuadArray.TEXTURE_COORDINATE_2);
quadArray6.setCoordinates(0, verts6);
quadArray6.setNormals(0, normals);
quadArray6.setTextureCoordinates(0, textCoords);
QuadArray quadArray7 = new QuadArray(24, QuadArray.COORDINATES |
QuadArray.NORMALS |
QuadArray.TEXTURE_COORDINATE_2);
quadArray7.setCoordinates(0, verts7);
quadArray7.setNormals(0, normals);
quadArray7.setTextureCoordinates(0, textCoords);
QuadArray quadArray8 = new QuadArray(24, QuadArray.COORDINATES |
QuadArray.NORMALS |
QuadArray.TEXTURE_COORDINATE_2);
quadArray8.setCoordinates(0, verts8);
quadArray8.setNormals(0, normals);
quadArray8.setTextureCoordinates(0, textCoords);
shape1 = new Shape3D(quadArray1, appearance);
shape2 = new Shape3D(quadArray2, appearance);
shape3 = new Shape3D(quadArray3, appearance);
shape4 = new Shape3D(quadArray4, appearance);
shape5 = new Shape3D(quadArray5, appearance);
shape6 = new Shape3D(quadArray6, appearance);
shape7 = new Shape3D(quadArray7, appearance);
shape8 = new Shape3D(quadArray8, appearance);
group = new Group();
group.addChild(shape1);
group.addChild(shape2);
group.addChild(shape3);
group.addChild(shape4);
group.addChild(shape5);
group.addChild(shape6);
group.addChild(shape7);
group.addChild(shape8);
}
public Group getChild() {
return group;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -