Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package vectorlib;
- import java.awt.BasicStroke;
- import java.awt.Color;
- import java.awt.Frame;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.Panel;
- import java.awt.RenderingHints;
- import java.awt.event.WindowAdapter;
- import java.awt.event.WindowEvent;
- import java.awt.geom.Path2D;
- import javax.swing.JTextField;
- public class PathWindow extends Frame {
- int sizeX = 800;
- int sizeY = 600;
- public PathWindow() {
- this.setSize(sizeX, sizeY);
- this.setTitle("Computergrafik und Computeranimation");
- this.add(new MyPanel());
- this.setVisible(true);
- this.addWindowListener(
- new WindowAdapter() {
- public void windowClosing(WindowEvent e) {
- System.exit(0);
- }
- }
- );
- }
- public static void main(String[] args) {
- new PathWindow();
- }
- private class MyPanel extends Panel {
- public void paint(Graphics g) {
- Graphics2D g2d = (Graphics2D)g;
- g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- Path2D.Double path = new Path2D.Double(Path2D.WIND_NON_ZERO);
- int offsetX = 400;
- int offsetY = 300;
- path.moveTo(0 + offsetX,100 + offsetY);
- path.quadTo(70 + offsetX,-40 + offsetY,-87 + offsetX,-50 + offsetY);
- path.quadTo(0 + offsetX,80 + offsetY,87 + offsetX,-50 + offsetY);
- path.quadTo(-70 + offsetX,-40 + offsetY,0 + offsetX,100 + offsetY);
- path.closePath();
- g2d.fill(path);
- // path.moveTo(300, 300);
- // path.quadTo(100, 0, 0, 150);
- // path.quadTo(300, 600, 200, 300);
- // path.closePath();
- //
- // g2d.setColor(Color.RED);
- // g2d.fill(path);
- // g2d.drawLine(400, 200, 500, 300);
- // g2d.drawLine(500, 300, 400, 400);
- //
- // g2d.setColor(Color.BLUE);
- // g2d.drawLine(400, 400, 300, 500);
- // g2d.drawLine(300, 500, 500, 600);
- // g2d.drawLine(500, 600, 300, 700);
- //Vektoren
- //Vector v = new Vector(-10,-20,0);
- //drawCoord(g2d);
- //drawVector(v, Color.GREEN, g2d);
- }
- }
- private void drawGrid(Graphics2D g2d) {
- g2d.setStroke(new BasicStroke(0.5f));
- g2d.setColor(Color.LIGHT_GRAY);
- for (int i = -600; i < 800; i+=10) {
- g2d.drawLine(i, 600, i + 600, 0);
- }
- for (int i = 0; i < 800; i+=10) {
- g2d.drawLine(0, i, 800, i);
- }
- }
- private void drawVector(Vector v, Color c, Graphics2D g2d) {
- int vx = (int)v.getX() * 10;
- int vy = (int)v.getY() * 10;
- g2d.setColor(c);
- g2d.drawLine(sizeX/2, sizeY/2, vx + sizeX/2, -vy + sizeY/2);
- g2d.drawOval(vx + sizeX/2-5, -vy + sizeY/2-5, 10, 10);
- g2d.drawString(" (" + vx / 10 + " | " + vy / 10 + ")", vx + sizeX/2, -vy + sizeY/2);
- }
- private void drawCoord(Graphics2D g2d) {
- int coordSizeX = 10;
- int coordSizeY = 10;
- g2d.setColor(Color.BLACK);
- g2d.setStroke(new BasicStroke(2));
- g2d.drawLine(sizeX/2 - coordSizeX * 10, sizeY / 2, sizeX / 2 + coordSizeX * 10, sizeY/2);
- g2d.drawString("(" + coordSizeX + ")", sizeX / 2 + coordSizeX * 10, sizeY / 2);
- g2d.drawLine(sizeX/2, sizeY / 2 - coordSizeY * 10, sizeX / 2, sizeY / 2 + coordSizeY * 10);
- g2d.drawString("(" + coordSizeX + ")", sizeX / 2, sizeY / 2 - coordSizeY * 10);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement