draw Thick Line - Java 2D Graphics

Java examples for 2D Graphics:Line

Description

draw Thick Line

Demo Code


//package com.java2s;
import java.awt.Color;
import java.awt.Graphics;

public class Main {
    public static void drawThickLine(Graphics g, int x1, int y1, int x2,
            int y2, int thickness, Color c) {

        // The thick line is in fact a filled polygon
        g.setColor(c);//from  w w  w .  j  av a  2s  .c  o  m
        int dX = x2 - x1;
        int dY = y2 - y1;
        // line length
        double lineLength = Math.sqrt(dX * dX + dY * dY);

        double scale = (double) (thickness) / (2 * lineLength);

        // The x and y increments from an endpoint needed to create a
        // rectangle...
        double ddx = -scale * (double) dY;
        double ddy = scale * (double) dX;
        ddx += (ddx > 0) ? 0.5 : -0.5;
        ddy += (ddy > 0) ? 0.5 : -0.5;
        int dx = (int) ddx;
        int dy = (int) ddy;

        // Now we can compute the corner points...
        int xPoints[] = new int[4];
        int yPoints[] = new int[4];

        xPoints[0] = x1 + dx;
        yPoints[0] = y1 + dy;
        xPoints[1] = x1 - dx;
        yPoints[1] = y1 - dy;
        xPoints[2] = x2 - dx;
        yPoints[2] = y2 - dy;
        xPoints[3] = x2 + dx;
        yPoints[3] = y2 + dy;

        g.fillPolygon(xPoints, yPoints, 4);
    }
}

Related Tutorials