Canvas 將螢幕座標系轉換成笛卡爾座標系

2022-09-08 21:03:34 字數 841 閱讀 5326

canvas繪圖裡的座標系是左上角為原點,向右為x正向,向下為y正向,這被稱為螢幕座標系;

如果繪製的內容和幾何無關,螢幕座標系倒也沒什麼,熟悉了也就好了;

但如果要重現幾何問題,那人工變換來變換去既傷腦筋,也沒必要。

我們可以在繪製之前將ctx變換好,**如下:

// 進行螢幕座標系到笛卡爾座標系的變換,原點移動到畫布**,右方為x正向,上方為y的正向

context.translate(width/2,height/2);

context.rotate(getrad(180));

context.scale(-1,1);

這個方法我在之前的博文 也提到過。

但當時的問題是,圖形必須和文字分開繪製,文字位置還需要單獨計算一遍,這又做了一番無用功。

今天我看到同是的網友「秋離」的函式,覺得很好。函式如下:

/**

* 該片段實現文字反轉

* @param ctx 即context

* @param text 繪製文字

* @param x 笛卡爾座標系轉換之前可以正常顯示的x座標

* @param y 笛卡爾座標系轉換之前可以正常顯示的y座標

*/function rotatetext(ctx,text,x,y)

原理是把倒置的文字再變換回去。

經過這樣兩重處理後,圖形文字都正常了,如圖:

出現文字表示您的瀏覽器還不支援html5

end

怎麼將右手座標系轉換成左手座標系

有兩種 1 z軸取負,然後渲染時背面消隱改為逆時針!2 相機用右手座標 拿一本書來舉例,把這本書直立起來,正面朝向你,然後約定,在左手座標系下,相機在原點位置,朝正z軸方向看,而右手座標系則相反,相機在原點是朝負z軸看的.然後,在右手座標系下,正面的z值比背面大,而現在要轉換成左手座標系,並且要看到...

座標系轉換,客戶區座標轉換成邏輯

客戶區座標轉換成邏輯座標或其它你想要的座標。轉換座標核心 如下,其中最關鍵的一步為pdc setmapmode mm lometric 設定對映模式 cmydoc pdoc getdocument assert valid pdoc cpen pen 1,5,rgb 0x7a,0x7a,0x7a c...

Canvas座標系轉換

canvas中的座標是從左上角開始的,x軸沿著水平方向 按畫素 向右延伸,y軸沿垂直方向向下延伸。左上角座標為x 0,y 0的點稱作原點。在預設座標系中,每乙個點的座標都是直接對映到乙個css畫素上。但是如果影象的每次繪製都參考乙個固定點將缺少靈活性,於是在canvas中引入 當前座標系 的概念,所...