2017-03-05 75 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輕鬆地重寫上述代碼。然後,您只需拿起其中一個大量的畫布示例即可完成設置。