2012-02-27 60 views
1

我嘗試在我的draw()函數中使用此代碼處理創建的圖形程序中編寫垂直文本。爲什麼我的輪換在處理中古怪?

// Translate to where I want text to be. 
    translate(20., 30.); 

    // Center align text 
    textAlign(CENTER); 

    // Rotate text-to-be written by 270 degrees to make it vertical. 
    rotate(270.); 

    // Write vertical text. 
    text("Some Vertical Text", 0, 0); 

    // Undo rotation and translation. 
    rotate(-270.); 
    translate(-20., -30.); 

但是,此代碼不會垂直旋轉文本。事實上,所寫的文本既不是垂直也不是水平傾斜的。

這是怎麼回事?

回答

2

你必須用弧度指定角度。改爲嘗試rotate(PI/2.0*3)。如果你不喜歡使用弧度,你可以用radians(x)函數來轉換它們。最終結果如下所示:rotate(radians(270))

噢,一般來說,使用pushMatrix()來保存當前的平移/旋轉/狀態並且popMatrix以後恢復它而不是迴轉是個好主意。旋轉往往會給你很小的舍入誤差,可以快速積累。

+0

謝謝! '旋轉(3 * PI/2)'正確旋轉文本。另外,非常感謝使用矩陣堆棧的建議。從現在開始,這將爲我節省大量的圖形編程工作(並且更準確)。 – dangerChihuahua007 2012-02-27 00:52:42