2010-10-02 128 views
1

我想繪製一個函數的曲線,所以我需要一種方法來將我的曲線點座標轉換爲屏幕座標,但我無法讓它工作。 下面是我用轉換的方法:在Java中的笛卡爾座標

public Point tradPoint(Point P){  
    Point Ptd = new Point(); 

    Ptd.x=getWidth()/2 + P.x*getWidth()/20; 
    Ptd.y=getHeight()/2 - P.y*getHeight()/20; 

    return Ptd; 
} 

,但它不工作。

我應該提到我正在使用笛卡爾座標系和單位= 20。 有什麼建議嗎?

由於

+0

當你說「單位= 20」是否意味着「P」座標中的一個單位等於你的寬度/高度的二十分之一?這似乎是你編碼的東西。 – Troubadour 2010-10-02 14:56:21

+0

請更改「不起作用」。你是唯一一個能夠看到發生了什麼以及你會發生什麼的人。 – 2010-10-02 15:20:26

+0

它返回Ptd.y總是一個負數 – 2010-10-02 15:25:49

回答

3

應該是

Ptd.x = getWidth()/2 + P.x * 20; 
Ptd.y = getHeight()/2 - P.y * 20; 

其中20是單元的寬度。

此外,PtdpTd甚至更​​好pointTranslatedPppoint。 Java標識符應該以小寫字母開頭並且是描述性的。

+0

非常感謝,但沒有工作,也許單位寬度即時採取是錯誤的,有沒有另一種方式? – 2010-10-02 15:12:00

+0

@Mona:這是不是工作? – Troubadour 2010-10-02 15:32:27

+0

@Mona:這應該有效。也許還有另一個問題?你會得到什麼結果以獲得什麼投入? – 2010-10-02 16:15:19