2017-03-05 77 views
-2

我想在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

我不想要代码。我想知道那种**结构**(如窗格和标签..) 所附照片的代码不是由JavaFX,我发现它在另一个问题。 我需要知道如何绘制**点**在某个结构**上像一张纸(例如)制作一个形状并将其放入相框中? 对不起,我的英文很差! @Shashwat –

回答

0

如果您为WorkingField类使用Canvas类,则可以使用JavaFX轻松地重写上述代码。然后,您只需拿起其中一个大量的画布示例即可完成设置。