當使用HTML5的畫布元素,我一直看到以下類型的代碼:有什麼用「背景」的
canvas = document.getElementById("id")
ctx = canvas.getContext("2d") /* or may be 'webgl' or something else */
ctx.moveTo()
...
ctx.lineTo()
...
blabla...
我不知道爲什麼我們在這裏需要context
對象:那豈不是更簡單的只寫
canvas.moveTo()
canvas.drawImage()
canvas.render()
我看不出有什麼必要性,以創建一個名爲context
一個額外的事情。我看到一個解釋說,這是因爲有幾個上下文,如'2d'
,'webgl'
......他們使用不同的繪圖方法,畫布必須知道使用哪一個。但是我對這個解釋並不滿意,因爲我們可以給canvas
添加一個屬性,如canvas.set_method('2d')
。必須有一些複雜的理由來使用上下文管理器而不是普通的畫布。 任何人都可以幫我澄清一下嗎?
畫布就是這樣。你可以借鑑的東西。上下文通知系統如何在其上繪製。如果它是一個真實世界的「畫布」,那麼上下文就會告訴畫布你將如何在它上面放置東西:油漆,蠟筆,木炭,鉛筆,蠟筆,先生。豆爆炸的報道等... –
只需添加到@ MarcB的好評:您可以查看[W3C](http://www.w3.org/TR/2dcontext/)的歷史建議和建議(標準爲帆布身體)。你的答案可能是他們的反芻。 – markE