在JavaFX中绘制字段形状

时间:2017-03-05 02:46:26

标签: java javafx

我想在JavaFX中绘制字段形状。

我需要通过this照片等点来绘制非标准的形状绘图。

照片代码: WorkingField.java

import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;

import static java.lang.Math.*;


public class WorkingField extends Component {
    double L1 = 200;
    double L2 = 100;
    double L3 = 0;
    double Q11 = 0;
    double Q21 = 0;
    double Q31 = 0;
    double Q12 = 90;
    double Q22 = 90;
    double Q32 = 90;

    public void paint(Graphics g)
    {
        g.drawLine(0,384,1366,384); // x-axis
        g.drawLine(683,0,683,1366); // y-axis

        g.setColor(Color.red);
        for(double q1=Q11;q1<=Q12;q1=q1+0.5)
        {
            for(double q2=Q21;q2<=Q22;q2=q2+0.5)
            {
                for(double q3=Q31;q3<=Q32;q3=q3+0.5)
                {
                    int X = (int) (L1*cos(q1*(3.1415926/180))+L2*cos((q1*(3.1415926/180)) + (q2*(3.1415926/180))) + L3*cos((q1*(3.1415926/180)) + (q2*(3.1415926/180)) + (q3*(3.1415926/180))));
                    int Y = (int) (L1*sin(q1*(3.1415926/180))+L2*sin((q1*(3.1415926/180)) + (q2*(3.1415926/180))) + L3*sin((q1*(3.1415926/180)) + (q2*(3.1415926/180)) + (q3*(3.1415926/180))));
                    g.drawLine(683+X,384-Y,683+X,384-Y);
                }
            }

        }
    }
}

Main.java

import javax.swing.JFrame;

public class Main {

    public static void main(String[] args) {
        WorkingField P = new WorkingField();
        JFrame F = new JFrame();
        WorkingField B = new WorkingField();
        B.setSize(100, 70);
        F.setSize(1366,768);
        F.add(P);
        F.add(B);
        F.setVisible(true);

    }

}

但我还需要添加按钮和文本字段,并让用户能够拖动轴。

我应该使用什么结构以及如何在其中绘制点?

1 个答案:

答案 0 :(得分:0)

如果对WorkField类使用Canvas类,则可以使用JavaFX轻松地重写上述代码。然后你只需要选择众多画布示例中的一个来正确设置。