Das Aufeinandertreffen zweier Linien in einem Linienzug wie z. B. einem Polygon. Mit der Eintellung legst Du fest, ob die entstehenden Ecken "abgeschnitten", zugespitzt oder abgerundet sein sollen.Das konnte ich bei einem Artikel über den Stroke sehen, aber was soll das darstellen ?
Das Aufeinandertreffen zweier Linien in einem Linienzug wie z. B. einem Polygon. Mit der Eintellung legst Du fest, ob die entstehenden Ecken "abgeschnitten", zugespitzt oder abgerundet sein sollen.Das konnte ich bei einem Artikel über den Stroke sehen, aber was soll das darstellen ?
import java.awt.*;
import java.awt.geom.*;
import static java.awt.BasicStroke.*;
import static java.awt.RenderingHints.*;
import javax.swing.*;
public class Test {
public void run() {
JPanel panel = new JPanel() {
Shape triangle = new Polygon(new int[]{-1,1,0}, new int[]{-1,-1,1}, 3);
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(KEY_ANTIALIASING, VALUE_ANTIALIAS_ON);
g2.scale(getWidth()/6, getHeight()/6);
g2.translate(1,1);
for (int join : new int[]{JOIN_BEVEL, JOIN_MITER, JOIN_ROUND}) {
g2.setStroke(new BasicStroke(0.1f, CAP_SQUARE, join));
g2.draw(triangle);
g2.translate(2,0);
}
}
};
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.add(panel);
frame.setSize(800, 600);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new Test().run());
}
}
Vielen Dank!Hier mal ein Beispiel, das den Effekt am "lebenden Objekt" zeigt:
Java:import java.awt.*; import java.awt.geom.*; import static java.awt.BasicStroke.*; import static java.awt.RenderingHints.*; import javax.swing.*; public class Test { public void run() { JPanel panel = new JPanel() { Shape triangle = new Polygon(new int[]{-1,1,0}, new int[]{-1,-1,1}, 3); public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setRenderingHint(KEY_ANTIALIASING, VALUE_ANTIALIAS_ON); g2.scale(getWidth()/6, getHeight()/6); g2.translate(1,1); for (int join : new int[]{JOIN_BEVEL, JOIN_MITER, JOIN_ROUND}) { g2.setStroke(new BasicStroke(0.1f, CAP_SQUARE, join)); g2.draw(triangle); g2.translate(2,0); } } }; JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.add(panel); frame.setSize(800, 600); frame.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(() -> new Test().run()); } }