List of usage examples for com.google.gwt.canvas.dom.client Context2d moveTo
public final native void moveTo(double x, double y) ;
From source file:org.primordion.xholon.io.GridPanel.java
License:Open Source License
/** * Draw a polygon./*from w ww .j av a 2 s.c o m*/ */ protected void drawPolygon(Context2d ctx, int x, int y, int xCoor[], int yCoor[], int sides) { ctx.save(); ctx.translate(x, y); ctx.beginPath(); ctx.moveTo(xCoor[0], yCoor[0]); for (int i = 1; i < sides; i++) { ctx.lineTo(xCoor[i], yCoor[i]); } ctx.lineTo(xCoor[0], yCoor[0]); ctx.fill(); ctx.closePath(); ctx.restore(); }
From source file:org.primordion.xholon.io.GridPanel.java
License:Open Source License
/** * Draw a regular polygon.//from w ww. j a v a 2 s .c om * Example: <code> context.beginPath(); polygon(context,350,125,100,6,-Math.PI/2); context.fillStyle="rgba(51,128,255,0.75)"; context.fill(); context.stroke(); </code> * @param ctx A GWT Context2d object. * @param x X coordinate of the grid cell. * @param y Y coordinate of the grid cell. * @param radius * @param sides The number of sides in the polygon. This value must be >= 3. * @param startAngle Angle in radians. * @param anticlockwise Draw clockwise (false) or anticlockwise (true). * @see http://www.storminthecastle.com/2013/07/24/how-you-can-draw-regular-polygons-with-the-html5-canvas-api/ */ protected void drawPolygon(Context2d ctx, int x, int y, double radius, int sides, double startAngle, boolean anticlockwise) { if (sides < 3) return; double a = (Math.PI * 2) / sides; a = anticlockwise ? -a : a; ctx.save(); ctx.translate(x, y); ctx.rotate(startAngle); ctx.moveTo(radius, 0); for (int i = 1; i < sides; i++) { //double xcoor = radius * Math.cos(a * i); //double ycoor = radius * Math.sin(a * i); //System.out.println("i:" + i + " xcoor:" + xcoor + " ycoor:" + ycoor); //ctx.lineTo(xcoor, ycoor); ctx.lineTo(radius * Math.cos(a * i), radius * Math.sin(a * i)); } ctx.closePath(); ctx.restore(); }
From source file:org.rstudio.core.client.widget.ProgressSpinner.java
License:Open Source License
private void redraw() { Context2d ctx = canvas_.getContext2d(); double center = COORD_SIZE / 2; // clear canvas (we draw with an alpha channel so otherwise would stack) ctx.clearRect(0, 0, COORD_SIZE, COORD_SIZE); for (int i = 0; i < NUM_BLADES; i++) { // compute angle for this blade double theta = ((2 * Math.PI) / NUM_BLADES) * i; double sin = Math.sin(theta); double cos = Math.cos(theta); // set line drawing context ctx.beginPath();//from w w w . j a v a 2 s. co m ctx.setLineWidth(BLADE_WIDTH); ctx.setLineCap(LineCap.ROUND); // compute transparency for this blade double alpha = 1.0 - (((double) ((i + frame_) % NUM_BLADES)) / ((double) NUM_BLADES)); ctx.setStrokeStyle("rgba(" + color_ + ", " + alpha + ")"); // draw the blade ctx.moveTo(center + sin * innerRadius_, center + cos * innerRadius_); ctx.lineTo(center + sin * outerRadius_, center + cos * outerRadius_); ctx.stroke(); } }
From source file:org.rstudio.studio.client.workbench.views.vcs.dialog.graph.GraphLine.java
License:Open Source License
private void draw(Canvas canvas, GraphTheme theme) { int height = theme.getRowHeight(); int colWidth = theme.getColumnWidth(); double pad = theme.getVerticalLinePadding(); canvas.setCoordinateSpaceHeight(height); canvas.setCoordinateSpaceWidth(colWidth * getTotalWidth(theme)); Context2d ctx = canvas.getContext2d(); //ctx.clearRect(0, 0, colWidth * columns_.length, height); ctx.translate(colWidth / 2.0, 0);/*from w ww.j ava2s . co m*/ int startPos = -1; int endPos = -1; int nexusColumn = -1; for (int i = 0; i < columns_.length; i++) { GraphColumn c = columns_[i]; if (!c.start) startPos++; if (!c.end) endPos++; ctx.setStrokeStyle(theme.getColorForId(c.id)); ctx.setLineWidth(theme.getStrokeWidth()); ctx.setLineJoin(LineJoin.ROUND); if (!c.nexus && !c.start && !c.end) { // Just draw a line from start to end position ctx.beginPath(); ctx.moveTo(startPos * colWidth, 0); ctx.lineTo(startPos * colWidth, pad); // This next lineTo helps ensure that the shape of the line looks // congruous to any specials on the same line ctx.lineTo(Math.min(startPos, endPos) * colWidth, height / 2.0); ctx.lineTo(endPos * colWidth, height - pad); ctx.lineTo(endPos * colWidth, height); ctx.stroke(); } else { // something special if (c.nexus) { nexusColumn = i; ctx.setFillStyle(theme.getColorForId(c.id)); } if (!c.start) { // draw from i to nexusColumn; ctx.beginPath(); ctx.moveTo(startPos * colWidth, 0); ctx.lineTo(startPos * colWidth, pad); ctx.lineTo(nexusColumn * colWidth, height / 2.0); ctx.stroke(); } if (!c.end) { // draw from nexusColumn to endPosition ctx.beginPath(); ctx.moveTo(nexusColumn * colWidth, height / 2.0); ctx.lineTo(endPos * colWidth, height - pad); ctx.lineTo(endPos * colWidth, height); ctx.stroke(); } } } // draw a circle on the nexus ctx.beginPath(); ctx.arc(nexusColumn * colWidth, height / 2.0, theme.getCircleRadius() + theme.getStrokeWidth(), 0, Math.PI * 2); ctx.closePath(); ctx.fill(); ctx.beginPath(); ctx.arc(nexusColumn * colWidth, height / 2.0, theme.getCircleRadius(), 0, Math.PI * 2); ctx.closePath(); ctx.setFillStyle("white"); ctx.fill(); }
From source file:org.teavm.samples.benchmark.gwt.BenchmarkStarter.java
License:Apache License
private void render() { Context2d context = canvas.getContext2d(); context.setFillStyle("white"); context.setStrokeStyle("grey"); context.fillRect(0, 0, 600, 600);//from www. j a va 2 s . co m context.save(); context.translate(0, 600); context.scale(1, -1); context.scale(100, 100); context.setLineWidth(0.01); for (Body body = scene.getWorld().getBodyList(); body != null; body = body.getNext()) { Vec2 center = body.getPosition(); context.save(); context.translate(center.x, center.y); context.rotate(body.getAngle()); for (Fixture fixture = body.getFixtureList(); fixture != null; fixture = fixture.getNext()) { Shape shape = fixture.getShape(); if (shape.getType() == ShapeType.CIRCLE) { CircleShape circle = (CircleShape) shape; context.beginPath(); context.arc(circle.m_p.x, circle.m_p.y, circle.getRadius(), 0, Math.PI * 2, true); context.closePath(); context.stroke(); } else if (shape.getType() == ShapeType.POLYGON) { PolygonShape poly = (PolygonShape) shape; Vec2[] vertices = poly.getVertices(); context.beginPath(); context.moveTo(vertices[0].x, vertices[0].y); for (int i = 1; i < poly.getVertexCount(); ++i) { context.lineTo(vertices[i].x, vertices[i].y); } context.closePath(); context.stroke(); } } context.restore(); } context.restore(); }
From source file:playn.html.HtmlPath.java
License:Apache License
void replay(Context2d ctx) { ctx.beginPath();//from w w w. ja v a 2 s . co m int len = list.length(), i = 0; double x = 0, y = 0; while (i < len) { switch ((int) list.get(i++)) { case CMD_MOVE: { x = list.get(i++); y = list.get(i++); ctx.moveTo(x, y); break; } case CMD_LINE: { x = list.get(i++); y = list.get(i++); ctx.lineTo(x, y); break; } case CMD_QUAD: { double cpx = list.get(i++); double cpy = list.get(i++); x = list.get(i++); y = list.get(i++); ctx.quadraticCurveTo(cpx, cpy, x, y); break; } case CMD_BEZIER: { double c1x = list.get(i++), c1y = list.get(i++); double c2x = list.get(i++), c2y = list.get(i++); x = list.get(i++); y = list.get(i++); ctx.bezierCurveTo(c1x, c1y, c2x, c2y, x, y); break; } case CMD_CLOSE: { ctx.closePath(); break; } default: throw new AssertionError("Corrupt command list"); } } }
From source file:stroom.widget.htree.client.BracketConnectorRenderer.java
License:Apache License
private void drawTop(final Context2d ctx, final double midX, final double minX, final double maxX, final double y1, final double y2) { final double maxY = y1 - RADIUS; final double minY = y2 + RADIUS; // Draw top of bracket ctx.beginPath();// w w w . ja v a2s.c om ctx.moveTo(midX, maxY); ctx.arc(minX, maxY, RADIUS, 0, HALF_PI); ctx.moveTo(midX, maxY); ctx.lineTo(midX, minY); ctx.moveTo(midX, minY); ctx.arc(maxX, minY, RADIUS, Math.PI, ONE_AND_HALF_PI); ctx.setStrokeStyle(lineColor); ctx.stroke(); }
From source file:stroom.widget.htree.client.BracketConnectorRenderer.java
License:Apache License
private void drawBottom(final Context2d ctx, final double midX, final double minX, final double maxX, final double y1, final double y2) { final double minY = y1 + RADIUS; final double maxY = y2 - RADIUS; // Draw bottom of bracket ctx.beginPath();//from ww w. j a va2s . co m ctx.moveTo(minX, y1); ctx.arc(minX, minY, RADIUS, ONE_AND_HALF_PI, 0); ctx.moveTo(midX, minY); ctx.lineTo(midX, maxY); ctx.moveTo(maxX, y2); ctx.arc(maxX, maxY, RADIUS, HALF_PI, Math.PI); ctx.setStrokeStyle(lineColor); ctx.stroke(); }
From source file:stroom.widget.htree.client.RoundedRectangle.java
License:Apache License
public void draw(final Context2d ctx, final double x, final double y, final double width, final double height, final double radius, final FillStrokeStyle fill, final FillStrokeStyle stroke) { ctx.beginPath();//from w w w . j a v a2 s . co m ctx.moveTo(x + radius, y); ctx.lineTo(x + width - radius, y); ctx.quadraticCurveTo(x + width, y, x + width, y + radius); ctx.lineTo(x + width, y + height - radius); ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height); ctx.lineTo(x + radius, y + height); ctx.quadraticCurveTo(x, y + height, x, y + height - radius); ctx.lineTo(x, y + radius); ctx.quadraticCurveTo(x, y, x + radius, y); ctx.closePath(); if (fill != null) { ctx.setFillStyle(fill); ctx.fill(); } if (stroke != null) { ctx.setStrokeStyle(stroke); ctx.stroke(); } }