本文整理匯總了Java中javax.media.opengl.GL.glLineWidth方法的典型用法代碼示例。如果您正苦於以下問題:Java GL.glLineWidth方法的具體用法?Java GL.glLineWidth怎麽用?Java GL.glLineWidth使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類javax.media.opengl.GL
的用法示例。
在下文中一共展示了GL.glLineWidth方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: mesh
import javax.media.opengl.GL; //導入方法依賴的package包/類
public static void mesh(GL gl, double xstart, double xend, double ystart, double yend, int xsteps, int ysteps){
double grid[] = new double[] {xstart, ystart, 0.0, xstart, yend, 0.0, xend, ystart, 0.0, xend, yend, 0.0};
gl.glEnable(GL.GL_MAP2_VERTEX_3);
gl.glLineWidth(1.0f);
gl.glMap2d(GL.GL_MAP2_VERTEX_3,
0.0, 1.0, /* U ranges 0..1 */
3, /* U stride, 3 floats per coord */
2, /* U is 2nd order, ie. linear */
0.0, 1.0, /* V ranges 0..1 */
2 * 3, /* V stride, row is 2 coords, 3 floats per coord */
2, /* V is 2nd order, ie linear */
grid,0); /* control points */
gl.glMapGrid2d(
ysteps, 0.0, 1.0,
xsteps, 0.0, 1.0);
gl.glEvalMesh2(GL.GL_LINE, 0, ysteps, 0, xsteps);
}
示例2: testRotation
import javax.media.opengl.GL; //導入方法依賴的package包/類
/**
* test the sketch plane rotation and CSG_Vertex rotation code.
* If things are working correctly, every line should end at
* a point of the same color. (purple lines -> purple points;
* orange lines -> orange/green points).S
* @param gl
*/
public static void testRotation(GL gl){
System.out.println(" ------ GL Rotation Test -------- ");
gl.glLoadIdentity();
gl.glLineWidth(2.0f);
gl.glPointSize(5.0f);
CSG_Vertex v1 = new CSG_Vertex(1.0, 1.0, 0.0);
CSG_Vertex v2 = new CSG_Vertex(2.0, 1.0, 0.0);
CSG_Vertex v3 = new CSG_Vertex(2.0, 2.0, 0.0);
CSG_Vertex v4 = new CSG_Vertex(1.0, 2.0, 0.0);
CSG_Vertex vX = new CSG_Vertex(1.0, 0.0, 0.0);
CSG_Vertex vY = new CSG_Vertex(0.0, 1.0, 0.0);
CSG_Vertex vZ = new CSG_Vertex(0.0, 0.0, 1.0);
vX.drawPointForDebug(gl);
vY.drawPointForDebug(gl);
vZ.drawPointForDebug(gl);
for(double yInc= -0.25; yInc<0.26; yInc+= 0.1){
for(double rot=-3.10; rot<3.14; rot+= 0.1){
CSG_Vertex normal = new CSG_Vertex(Math.sin(rot), yInc, Math.cos(rot)).getUnitLength();
//CSG_Vertex normal = new CSG_Vertex(1.0, 0.0, 0.0);
CSG_Plane plane = new CSG_Plane(normal, 0.0);
SketchPlane sP = new SketchPlane(plane);
//System.out.println("--> normal: " + normal);
Translation3D translation = new Translation3D(0.0, 0.0, 0.0);
Rotation3D rotation = new Rotation3D(sP.getRotationX(), sP.getRotationY(), sP.getRotationZ());
CSG_Face f1 = new CSG_Face(new CSG_Polygon(v1, v2, v3, v4));
CSG_Face f2 = f1.getTranslatedCopy(new CSG_Vertex(-3.0, 0.0, 0.0));
CSG_Face f3 = f1.getTranslatedCopy(new CSG_Vertex(-3.0, -3.0, 0.0));
CSG_Face f4 = f1.getTranslatedCopy(new CSG_Vertex( 0.0, -3.0, 0.0));
gl.glColor3d(rot, 0.5, 0.0);
gl.glPointSize(7.0f);
//vX.getTranslatedRotatedCopy(translation, rotation).glDrawVertex(gl);
//vY.getTranslatedRotatedCopy(translation, rotation).glDrawVertex(gl);
vZ.getTranslatedRotatedCopy(translation, rotation).glDrawVertex(gl);
f1.applyTranslationRotation(translation, rotation);
f2.applyTranslationRotation(translation, rotation);
f3.applyTranslationRotation(translation, rotation);
f4.applyTranslationRotation(translation, rotation);
//f1.glDrawFace(gl); //
//f2.glDrawFace(gl); // uncomment these faces to see how
//f3.glDrawFace(gl); // planar regions are rotated.
//f4.glDrawFace(gl); //
gl.glColor3d(0.8, 0.0, 0.8);
sP.getVar1Axis().glDrawVertex(gl);
plane.drawNormalFromOriginForDegug(gl);
gl.glRotatef((float)(rotation.getXRot()*180.0/Math.PI), 1.0f, 0.0f, 0.0f);
gl.glRotatef((float)(rotation.getYRot()*180.0/Math.PI), 0.0f, 1.0f, 0.0f);
gl.glRotatef((float)(rotation.getZRot()*180.0/Math.PI), 0.0f, 0.0f, 1.0f);
gl.glColor3d(0.9, 0.7, 0.3);
gl.glPointSize(5.0f);
//vZ.glDrawVertex(gl);
gl.glBegin(GL.GL_LINES);
gl.glColor3d(0.9, 0.7, 0.3); // normal
gl.glVertex3d(0.0, 0.0, 0.0);
gl.glVertex3d(vZ.getX(), vZ.getY(), vZ.getZ());
gl.glColor3d(0.9, 0.3, 0.9); // x-axis
gl.glVertex3d(0.0, 0.0, 0.0);
gl.glVertex3d(1.0, 0.0, 0.0);
gl.glEnd();
gl.glLoadIdentity();
gl.glColor3d(0.7, 0.7, 0.7);
}
}
}
示例3: testPerimeterFormation
import javax.media.opengl.GL; //導入方法依賴的package包/類
/**
* test the perimeter formation routine.
* This should be able to take any CSG_Face composed of
* many convex polygons and return just the points
* along hte face's perimeter for edge drawing
* purposes in open GL.
* @param gl
*/
public static void testPerimeterFormation(GL gl){
gl.glLoadIdentity();
gl.glTranslated(-5.0, 0.0, 0.0);
Point2D ptA = new Point2D(0.0, 0.0);
Point2D ptB = new Point2D(2.0, 0.0);
Point2D ptC = new Point2D(2.0, 2.0);
Point2D ptD = new Point2D(1.1, 1.0);
Point2D ptE = new Point2D(2.0, 3.0);
Point2D ptF = new Point2D(3.0, 2.0);
Point2D ptG = new Point2D(2.5, 1.0);
Point2D ptH = new Point2D(2.5, 0.0);
Point2D ptI = new Point2D(4.0, 1.0);
Point2D ptJ = new Point2D(3.0, 3.0);
Point2D ptK = new Point2D(2.0, 4.0);
Point2D ptL = new Point2D(0.0, 2.0);
Point2D ptM = new Point2D(-1.0, 1.0);
Prim2DLine l1 = new Prim2DLine(ptA, ptB);
Prim2DLine l2 = new Prim2DLine(ptB, ptC);
Prim2DLine l3 = new Prim2DLine(ptC, ptD);
Prim2DLine l4 = new Prim2DLine(ptD, ptE);
Prim2DLine l5 = new Prim2DLine(ptE, ptF);
Prim2DLine l6 = new Prim2DLine(ptF, ptG);
Prim2DLine l7 = new Prim2DLine(ptG, ptH);
Prim2DLine l8 = new Prim2DLine(ptH, ptI);
Prim2DLine l9 = new Prim2DLine(ptI, ptJ);
Prim2DLine l10 = new Prim2DLine(ptJ, ptK);
Prim2DLine l11 = new Prim2DLine(ptK, ptL);
Prim2DLine l12 = new Prim2DLine(ptL, ptM);
Prim2DLine l13 = new Prim2DLine(ptM, ptA);
Prim2DCycle cycle = new Prim2DCycle();
cycle.add(l1);
cycle.add(l2);
cycle.add(l3);
cycle.add(l4);
cycle.add(l5);
cycle.add(l6);
cycle.add(l7);
cycle.add(l8);
cycle.add(l9);
cycle.add(l10);
cycle.add(l11);
cycle.add(l12);
cycle.add(l13);
Region2D region = new Region2D(cycle);
CSG_Face face = region.getCSG_Face();
face.drawFaceForDebug(gl);
face.drawFaceLinesForDebug(gl);
gl.glTranslated(5.0, 0.0, 0.0);
// now find the perimeter and draw that...
gl.glLineWidth(3.0f);
gl.glPointSize(5.0f);
gl.glColor3d(0.9, 0.7, 0.3);
LinkedList<CSG_Vertex> perim = face.getPerimeterVertices();
for(int i=0; i<perim.size(); i++){
CSG_Vertex vA = perim.get(i);
CSG_Vertex vB = perim.get((i+1)%perim.size());
gl.glBegin(GL.GL_LINE_LOOP);
gl.glVertex3d(vA.getX(), vA.getY(), vA.getZ());
gl.glVertex3d(vB.getX(), vB.getY(), vB.getZ());
gl.glEnd();
}
//System.out.println("face area: " + face.getArea());
gl.glLoadIdentity();
}