Files
jpexs-decompiler/libsrc/miterstroke/src/com/jpexs/graphics/StrokeTest.java
2023-10-16 09:36:06 +02:00

135 lines
4.3 KiB
Java

package com.jpexs.graphics;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.GeneralPath;
import java.awt.geom.Point2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
*
* @author JPEXS
*/
public class StrokeTest extends JFrame {
public StrokeTest() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setContentPane(new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
float miterLimit = 3f;//9.6f;
Graphics2D g2d = (Graphics2D)g;
GeneralPath p = new GeneralPath();
ExtendedBasicStroke ebs = new ExtendedBasicStroke(30,
ExtendedBasicStroke.CAP_BUTT,
ExtendedBasicStroke.JOIN_MITER_CLIP,
miterLimit);
g2d.setStroke(ebs);
g2d.setPaint(Color.RED);
/*path = new GeneralPath();
path.moveTo(10, 10);
path.lineTo(30, 200);
path.lineTo(50, 10);
g2d.draw(path);
path = new GeneralPath();
path.moveTo(10, 300+200);
path.lineTo(30, 300+10);
path.lineTo(50, 300+200);
g2d.draw(path);
path = new GeneralPath();
path.moveTo(50, 600+200);
path.lineTo(30, 600+10);
path.lineTo(10, 600+200);
g2d.draw(path);
path = new GeneralPath();
path.moveTo(200, 300);
path.lineTo(200+190, 300+20);
path.lineTo(200, 300+40);
g2d.draw(path);*/
double zoom=1;
GeneralPath path = new GeneralPath();
path.moveTo(5+15 * zoom, 15*zoom);
path.lineTo(5+45*zoom, 185*zoom);
path.lineTo(5+85*zoom, 15*zoom);
g2d.draw(path);
/*p.moveTo(730.0,435.0);
p.quadTo(730.0,582.0,523.0,702.0);
p.quadTo(315.0,822.0,35.0,822.0);
p.quadTo(-306.0,822.0,-535.0,589.0);
p.quadTo(-764.0,356.0,-764.0,4.0);
p.quadTo(-764.0,-349.0,-542.0,-585.0);
p.quadTo(-320.0,-821.0,12.0,-821.0);
p.quadTo(332.0,-821.0,548.0,-599.0);
p.quadTo(764.0,-375.0,764.0,-57.0);
p.quadTo(764.0,46.0,717.0,88.0);
p.quadTo(669.0,130.0,535.0,130.0);
p.lineTo(-290.0,130.0);
p.quadTo(-275.0,257.0,-184.0,332.0);
p.quadTo(-92.0,406.0,59.0,406.0);
p.quadTo(190.0,406.0,349.0,331.0);
p.quadTo(508.0,256.0,545.0,256.0);
p.quadTo(629.0,256.0,679.0,306.0);
p.quadTo(730.0,356.0,730.0,435.0);*/
/*p.moveTo(220.0,-368.0);
p.quadTo(132.0,-446.0,15.0,-446.0);
p.quadTo(-103.0,-446.0,-186.0,-373.0);*/
/*p.moveTo(-186.0,-373.0);//navic
p.quadTo(-269.0,-300.0,-295.0,-172.0);
p.lineTo(314.0,-172.0);
//p.quadTo(314.0,-274.0,220.0,-368.0);
p.closePath();
g2d.setTransform(new AffineTransform());
g2d.translate(500, 500);
//g2d.scale(0.8, 0.8);
g2d.draw(p);*/
/*g2d.setStroke(new BasicStroke(30,
BasicStroke.CAP_ROUND,
BasicStroke.JOIN_MITER,
miterLimit));
*/
g2d.setStroke(new BasicStroke(1));
g2d.setColor(Color.BLACK);
g2d.drawLine(5, 229, 200, 229);
/*path = new GeneralPath();
path.moveTo(200+10, 10);
path.lineTo(200+30, 200);
path.lineTo(200+50, 10);
g2d.draw(path);
*/
/*for(Point2D po:ebs.testPoints){
drawPoint(g2d, po);
}*/
}
private void drawPoint(Graphics2D g, Point2D p){
g.setColor(Color.GREEN);
int width = 5;
g.drawRect((int)p.getX() - width/2, (int)p.getY() - width/2, width, width);
}
});
setSize(800, 800);
}
public static void main(String[] args) {
new StrokeTest().setVisible(true);
}
}