2011-11-30 49 views
1

我剛剛遇到一個有趣的事情,因爲數學函數,但我可以得到它數學可能包含浮點函數值,但Graphics2D可以用來繪製N值,因爲像素座標不能像0.897,但1或2等:(所以,我只是想問問如何在Java中畫一些簡單的數學圖表怎麼樣?Java - swing - Graphics2D - 如何形象化數學函數

Y = X

Y = X * tan(alpha)+3; abs(x)

Y = X + 5

我發現this種代碼; enter image description here

確定這是很有趣的,但它只是描繪圖帶標記但在其他方面的功能如何被用於油漆其他對象每N個像素權後,它(未標記,但放置一個JLabel與標記座標例如)?以及如何不顯示座標邊界?

+0

如果你知道有多少個小數位數是最大值,那麼可以將你的函數按10倍進行縮放,從而使所有數值成爲整數。 –

+1

http://stackoverflow.com/questions/5811928/graphics2d-should-i-use-the-int-or-float-versions –

+0

@詹姆斯布萊克感謝這個鏈接,但我對數學表達式感興趣,但不是在矩形,例如,我試圖找出如何遵循所有功能(x),並從x> = 10和x <= 100繪製一個小的圓圈,每10個像素它?如下所示,爲了在一個函數(x)上繪製正確的座標,我需要得到每個圓心點的x,y座標,並且座標必須是整數,否則繪畫不應該像預期的那樣平滑,因爲我想獲得一個清晰的函數線;我希望應該有一些標準的方式:) – user592704

回答

0

某些數學函數的返回值可以縮放到圖形的查看窗口。既然你是一個數學家,我會把它放在更類似數學的術語中:你需要創建一個可以應用到數學函數輸出中的映射函數...所以g(f(x))其中g將小數返回值轉換爲像素。 g(x)可以像下面這樣簡單:取輸入並乘以y = 100,假設你的視窗是100x100。我希望這是有道理的......你還要考慮你正在查看的2D圖的哪一部分。你在查看所有4個象限嗎?如果是這樣的g(x)將需要翻譯的價值也考慮到觀看窗口已經改變...

我希望這是有道理的!