本文整理了Java中java.awt.Graphics2D.drawLine()
方法的一些代码示例,展示了Graphics2D.drawLine()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Graphics2D.drawLine()
方法的具体详情如下:
包路径:java.awt.Graphics2D
类名称:Graphics2D
方法名:drawLine
暂无
代码示例来源:origin: libgdx/libgdx
/** Extract a ninepatch from a texture atlas, according to the android specification.
* @see <a href="http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch">ninepatch specification</a>
* @param page The image file related to the page the region is in
* @param region The region to extract */
private BufferedImage extractNinePatch (BufferedImage page, Region region, File outputDirFile) {
BufferedImage splitImage = extractImage(page, region, outputDirFile, NINEPATCH_PADDING);
Graphics2D g2 = splitImage.createGraphics();
g2.setColor(Color.BLACK);
// Draw the four lines to save the ninepatch's padding and splits
int startX = region.splits[0] + NINEPATCH_PADDING;
int endX = region.width - region.splits[1] + NINEPATCH_PADDING - 1;
int startY = region.splits[2] + NINEPATCH_PADDING;
int endY = region.height - region.splits[3] + NINEPATCH_PADDING - 1;
if (endX >= startX) g2.drawLine(startX, 0, endX, 0);
if (endY >= startY) g2.drawLine(0, startY, 0, endY);
if (region.pads != null) {
int padStartX = region.pads[0] + NINEPATCH_PADDING;
int padEndX = region.width - region.pads[1] + NINEPATCH_PADDING - 1;
int padStartY = region.pads[2] + NINEPATCH_PADDING;
int padEndY = region.height - region.pads[3] + NINEPATCH_PADDING - 1;
g2.drawLine(padStartX, splitImage.getHeight() - 1, padEndX, splitImage.getHeight() - 1);
g2.drawLine(splitImage.getWidth() - 1, padStartY, splitImage.getWidth() - 1, padEndY);
}
g2.dispose();
return splitImage;
}
代码示例来源:origin: stackoverflow.com
public void drawDashedLine(Graphics g, int x1, int y1, int x2, int y2){
//creates a copy of the Graphics instance
Graphics2D g2d = (Graphics2D) g.create();
//set the stroke of the copy, not the original
Stroke dashed = new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[]{9}, 0);
g2d.setStroke(dashed);
g2d.drawLine(x1, y1, x2, y2);
//gets rid of the copy
g2d.dispose();
}
代码示例来源:origin: looly/hutool
/**
* 绘制干扰线
*
* @param g {@link Graphics2D}画笔
* @param random 随机对象
*/
private void drawInterfere(Graphics2D g, ThreadLocalRandom random) {
// 干扰线
for (int i = 0; i < this.interfereCount; i++) {
int xs = random.nextInt(width);
int ys = random.nextInt(height);
int xe = xs + random.nextInt(width / 8);
int ye = ys + random.nextInt(height / 8);
g.setColor(ImageUtil.randomColor(random));
g.drawLine(xs, ys, xe, ye);
}
}
// ----------------------------------------------------------------------------------------------------- Private method start
代码示例来源:origin: pentaho/pentaho-kettle
private void drawImage( SwingUniversalImage img, int locationX, int locationY, int imageSize ) {
if ( isDrawingPixelatedImages() && img.isBitmap() ) {
BufferedImage bi = new BufferedImage( imageSize, imageSize, BufferedImage.TYPE_INT_ARGB );
Graphics2D g2 = (Graphics2D) bi.getGraphics();
g2.setColor( Color.WHITE );
g2.fillRect( 0, 0, imageSize, imageSize );
g2.drawImage( img.getAsBitmapForSize( imageSize, imageSize ), 0, 0, observer );
g2.dispose();
for ( int x = 0; x < bi.getWidth( observer ); x++ ) {
for ( int y = 0; y < bi.getHeight( observer ); y++ ) {
int rgb = bi.getRGB( x, y );
gc.setColor( new Color( rgb ) );
gc.setStroke( new BasicStroke( 1.0f ) );
gc.drawLine( locationX + xOffset + x, locationY + yOffset + y, locationX + xOffset + x, locationY
+ yOffset + y );
}
}
} else {
gc.setBackground( Color.white );
gc.clearRect( locationX, locationY, imageSize, imageSize );
img.drawToGraphics( gc, locationX, locationY, imageSize, imageSize );
}
}
代码示例来源:origin: plantuml/plantuml
public BufferedImage createBufferedImage() {
final BufferedImage im = new BufferedImage(widthCell * 15, heightCell * 15, BufferedImage.TYPE_INT_RGB);
final Graphics2D g2d = im.createGraphics();
g2d.setColor(Color.WHITE);
g2d.fillRect(0, 0, im.getWidth(), im.getHeight());
g2d.setColor(Color.BLACK);
for (ANode n : board.getNodes()) {
final int x = board.getCol(n) * widthCell;
final int y = n.getRow() * heightCell;
g2d.drawString(n.getCode(), x + 5, y + heightCell / 2 - 5);
g2d.drawOval(x, y, widthCell / 2, heightCell / 2);
}
for (ALink link : board.getLinks()) {
final ANode n1 = link.getNode1();
final ANode n2 = link.getNode2();
final int x1 = 10 + board.getCol(n1) * widthCell;
final int y1 = 10 + n1.getRow() * heightCell;
final int x2 = 10 + board.getCol(n2) * widthCell;
final int y2 = 10 + n2.getRow() * heightCell;
g2d.drawLine(x1, y1, x2, y2);
}
return im;
}
代码示例来源:origin: plantuml/plantuml
private void renderCustomShape(DiagramShape shape, Graphics2D g2){
CustomShapeDefinition definition = shape.getDefinition();
Rectangle bounds = shape.getBounds();
if(definition.hasBorder()){
g2.setColor(shape.getStrokeColor());
if(shape.isStrokeDashed())
g2.setStroke(dashStroke);
else
g2.setStroke(normalStroke);
g2.drawLine(bounds.x, bounds.y, bounds.x + bounds.width, bounds.y);
g2.drawLine(bounds.x + bounds.width, bounds.y, bounds.x + bounds.width, bounds.y + bounds.height);
g2.drawLine(bounds.x, bounds.y + bounds.height, bounds.x + bounds.width, bounds.y + bounds.height);
g2.drawLine(bounds.x, bounds.y, bounds.x, bounds.y + bounds.height);
// g2.drawRect(bounds.x, bounds.y, bounds.width, bounds.height); //looks different!
}
//TODO: custom shape distintion relies on filename extension. Make this more intelligent
if(definition.getFilename().endsWith(".png")){
renderCustomPNGShape(shape, g2);
} else if(definition.getFilename().endsWith(".svg")){
// renderCustomSVGShape(shape, g2);
throw new UnsupportedOperationException();
}
}
代码示例来源:origin: stackoverflow.com
Graphics2D g=(Graphics2D) image.getGraphics();
//draw over your image
g.drawLine(1,1,100,100);
g.dispose();
//save your image, display it, etc...
代码示例来源:origin: graphhopper/graphhopper
public void plotEdge(Graphics2D g2, double lat, double lon, double lat2, double lon2, float width) {
g2.setStroke(new BasicStroke(width));
g2.drawLine((int) getX(lon), (int) getY(lat), (int) getX(lon2), (int) getY(lat2));
}
代码示例来源:origin: kiegroup/optaplanner
public void drawRoute(Graphics2D g, double lon1, double lat1, double lon2, double lat2, boolean straight, boolean dashed) {
int x1 = translateLongitudeToX(lon1);
int y1 = translateLatitudeToY(lat1);
int x2 = translateLongitudeToX(lon2);
int y2 = translateLatitudeToY(lat2);
if (dashed) {
g.setStroke(TangoColorFactory.FAT_DASHED_STROKE);
}
if (straight) {
g.drawLine(x1, y1, x2, y2);
} else {
double xDistPart = (x2 - x1) / 3.0;
double yDistPart = (y2 - y1) / 3.0;
double ctrlx1 = x1 + xDistPart + yDistPart;
double ctrly1 = y1 - xDistPart + yDistPart;
double ctrlx2 = x2 - xDistPart - yDistPart;
double ctrly2 = y2 + xDistPart - yDistPart;
g.draw(new CubicCurve2D.Double(x1, y1, ctrlx1, ctrly1, ctrlx2, ctrly2, x2, y2));
}
if (dashed) {
g.setStroke(TangoColorFactory.NORMAL_STROKE);
}
}
代码示例来源:origin: pentaho/pentaho-kettle
private void drawImage( SwingUniversalImage img, int centerX, int centerY, double angle, int imageSize ) {
if ( isDrawingPixelatedImages() && img.isBitmap() ) {
BufferedImage bi = img.getAsBitmapForSize( imageSize, imageSize, angle );
int offx = centerX + xOffset - bi.getWidth() / 2;
int offy = centerY + yOffset - bi.getHeight() / 2;
for ( int x = 0; x < bi.getWidth( observer ); x++ ) {
for ( int y = 0; y < bi.getHeight( observer ); y++ ) {
int rgb = bi.getRGB( x, y );
gc.setColor( new Color( rgb ) );
gc.setStroke( new BasicStroke( 1.0f ) );
gc.drawLine( offx + x, offy + y, offx + x, offy + y );
}
}
} else {
gc.setBackground( Color.white );
gc.clearRect( centerX, centerY, imageSize, imageSize );
img.drawToGraphics( gc, centerX, centerY, imageSize, imageSize, angle );
}
}
代码示例来源:origin: marytts/marytts
double xp = 0.0;
double yp = 0.0;
g.setColor(currentGraphColor);
for (int i = index_fromX; i < index_toX; i++) {
if (!Double.isNaN(data[i])) {
g.drawLine(image_refX + (int) xo, image_refY - (int) yo, image_refX + (int) xp, image_refY - (int) yp);
histHeight = startY - topY;
g.setColor(currentGraphColor);
g.fillRect(image_refX + (int) xp - histogramWidth / 2, topY, histogramWidth, histHeight);
g.setColor(histogramBorderColor);
g.drawRect(image_refX + (int) xp - histogramWidth / 2, topY, histogramWidth, histHeight);
代码示例来源:origin: libgdx/libgdx
/** Extract a ninepatch from a texture atlas, according to the android specification.
* @see <a href="http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch">ninepatch specification</a>
* @param page The image file related to the page the region is in
* @param region The region to extract */
private BufferedImage extractNinePatch (BufferedImage page, Region region, File outputDirFile) {
BufferedImage splitImage = extractImage(page, region, outputDirFile, NINEPATCH_PADDING);
Graphics2D g2 = splitImage.createGraphics();
g2.setColor(Color.BLACK);
// Draw the four lines to save the ninepatch's padding and splits
int startX = region.splits[0] + NINEPATCH_PADDING;
int endX = region.width - region.splits[1] + NINEPATCH_PADDING - 1;
int startY = region.splits[2] + NINEPATCH_PADDING;
int endY = region.height - region.splits[3] + NINEPATCH_PADDING - 1;
if (endX >= startX) g2.drawLine(startX, 0, endX, 0);
if (endY >= startY) g2.drawLine(0, startY, 0, endY);
if (region.pads != null) {
int padStartX = region.pads[0] + NINEPATCH_PADDING;
int padEndX = region.width - region.pads[1] + NINEPATCH_PADDING - 1;
int padStartY = region.pads[2] + NINEPATCH_PADDING;
int padEndY = region.height - region.pads[3] + NINEPATCH_PADDING - 1;
g2.drawLine(padStartX, splitImage.getHeight() - 1, padEndX, splitImage.getHeight() - 1);
g2.drawLine(splitImage.getWidth() - 1, padStartY, splitImage.getWidth() - 1, padEndY);
}
g2.dispose();
return splitImage;
}
代码示例来源:origin: RaiMan/SikuliX2
g2d.setColor(selFrameColor);
g2d.setStroke(bs);
g2d.draw(rectSelection);
int cx = (x1 + x2) / 2;
int cy = (y1 + y2) / 2;
g2d.setColor(selCrossColor);
g2d.setStroke(_StrokeCross);
g2d.drawLine(cx, y1, cx, y2);
g2d.drawLine(x1, cy, x2, cy);
代码示例来源:origin: looly/hutool
/**
* 绘制干扰线
*
* @param g {@link Graphics2D}画笔
* @param random 随机对象
*/
private void drawInterfere(Graphics2D g, ThreadLocalRandom random) {
// 干扰线
for (int i = 0; i < this.interfereCount; i++) {
int xs = random.nextInt(width);
int ys = random.nextInt(height);
int xe = xs + random.nextInt(width / 8);
int ye = ys + random.nextInt(height / 8);
g.setColor(ImageUtil.randomColor(random));
g.drawLine(xs, ys, xe, ye);
}
}
// ----------------------------------------------------------------------------------------------------- Private method start
代码示例来源:origin: stackoverflow.com
public BufferedImage createSkelethonizationImage() {
BufferedImage image = new BufferedImage(width, height);
Graphics2D g2 = image.createGraphics();
// Perform your drawing here
g2.drawLine(...);
g2.dispose();
return image;
}
代码示例来源:origin: graphhopper/graphhopper
public void plotDirectedEdge(Graphics2D g2, double lat, double lon, double lat2, double lon2, float width) {
g2.setStroke(new BasicStroke(width));
int startLon = (int) getX(lon);
int startLat = (int) getY(lat);
int destLon = (int) getX(lon2);
int destLat = (int) getY(lat2);
g2.drawLine(startLon, startLat, destLon, destLat);
// only for deep zoom show direction
if (scaleX < 0.0001) {
g2.setStroke(new BasicStroke(3));
Path2D.Float path = new Path2D.Float();
path.moveTo(destLon, destLat);
path.lineTo(destLon + 6, destLat - 2);
path.lineTo(destLon + 6, destLat + 2);
path.lineTo(destLon, destLat);
AffineTransform at = new AffineTransform();
double angle = Math.atan2(lat2 - lat, lon2 - lon);
at.rotate(-angle + Math.PI, destLon, destLat);
path.transform(at);
g2.draw(path);
}
}
代码示例来源:origin: stackoverflow.com
public void drawDashedLine(Graphics g, int x1, int y1, int x2, int y2){
//creates a copy of the Graphics instance
Graphics2D g2d = (Graphics2D) g.create();
Stroke dashed = new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[]{9}, 0);
g2d.setStroke(dashed);
g2d.drawLine(x1, y1, x2, y2);
//gets rid of the copy
g2d.dispose();
}
代码示例来源:origin: i2p/i2p.i2p
void drawLine(int x1, int y1, int x2, int y2, Paint paint, Stroke stroke) {
gd.setStroke(stroke);
gd.setPaint(paint);
gd.drawLine(x1, y1, x2, y2);
}
代码示例来源:origin: libgdx/libgdx
int x = (int)(yAxisWidth + chartWidth * percent);
if (i != 0 && i != xSplit) {
g.setColor(Color.lightGray);
g.drawLine(x, chartY + 1, x, chartY + chartHeight);
g.drawLine(x, y - 4, x, y - 8);
if (isExpanded) {
x -= labelWidth / 2;
g.drawLine(chartX, y, chartX + chartWidth - 1, y);
g.drawLine(yAxisWidth - 4, y, yAxisWidth, y);
g.fillRect(x - 2, y - 2, titleWidth + 4, numberHeight + 4);
g.setStroke(new BasicStroke(isExpanded ? 3 : 2));
int lastX = -1, lastY = -1;
for (Point point : points) {
Point pixel = pointToPixel(point);
if (lastX != -1) g.drawLine(lastX, lastY, (int)pixel.x, (int)pixel.y);
lastX = (int)pixel.x;
lastY = (int)pixel.y;
g.drawLine(lastX, lastY, chartX + chartWidth - 1, lastY);
for (int i = 0, n = points.size(); i < n; i++) {
Point point = points.get(i);
代码示例来源:origin: marytts/marytts
double xp = 0.0;
double yp = 0.0;
g.setColor(currentGraphColor);
for (int i = index_fromX; i < index_toX; i++) {
if (!Double.isNaN(data[i])) {
g.drawLine(image_refX + (int) xo, image_refY - (int) yo, image_refX + (int) xp, image_refY - (int) yp);
histHeight = startY - topY;
g.setColor(currentGraphColor);
g.fillRect(image_refX + (int) xp - histogramWidth / 2, topY, histogramWidth, histHeight);
g.setColor(histogramBorderColor);
g.drawRect(image_refX + (int) xp - histogramWidth / 2, topY, histogramWidth, histHeight);
内容来源于网络,如有侵权,请联系作者删除!