эффект кисти в Java - PullRequest
       2

эффект кисти в Java

0 голосов
/ 26 августа 2010

Я хочу добиться эффекта java в кисти, мышь вернулась в точку, двигай мышь быстрее, линии тоньше.

1 Ответ

2 голосов
/ 25 марта 2011

Вот программа, которая демонстрирует, чего вы пытаетесь достичь.

Эта программа не идеальна, но вам следует начать с того, что вы пытаетесь построить.

import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;

import javax.swing.JFrame;

public class PaintBrush {

    JFrame f;
    Canvas c;
    int x=-1, y=-1;

    public PaintBrush() {
        f = new JFrame();
        f.setSize(600, 400);
        c = new Canvas() {
            public void paint(Graphics g) {
                // super.paint(g);
            }
        };
        f.getContentPane().add(c);
        c.addMouseMotionListener(new MouseMotionListener() {

            @Override
            public void mouseMoved(MouseEvent e) {
                // TODO Auto-generated method stub
            }

            @Override
            public void mouseDragged(MouseEvent e) {
                if(x==-1){
                    x = e.getX();
                    y = e.getY();
                }
                int diffx =  Math.abs(x - e.getX());
                int diffy =  Math.abs(y - e.getY());
                System.out.println("diffx:"+diffx+"\t"+"diffy:"+diffy);
                int speed = (int) Math.sqrt((diffx + diffy));
                if(speed>1){
                    c.getGraphics().fillOval(x, y, 20-speed*2, 20-speed*2);
                }else {
                    c.getGraphics().fillOval(x, y, 20, 20);
                }
                System.out.print("Speed:"+speed + "\t");
                System.out.println("x:"+e.getX());
                x = e.getX();
                y = e.getY();
            }
        });
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        new PaintBrush();

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...