save()ºÍrestore()
save()
±£´æµ±Ç°×´Ì¬£¬½«µ±Ç°canvasµÄ״̬´æÈëÕ»ÖС£
restore()
»Ö¸´Ö®Ç°saveµÄÒ»¸ö״̬£¬½«Ö®Ç°µÄ״̬´ÓÕ»Öе¯³ö¡£
±£´æµÄµ±Ç°×´Ì¬°üº¬ÒÔÏÂÐÅÏ¢£º
save()ºÍrestore()µÄÓô¦¾ÍÊÇÓÐʱºòÓÃcanvas»æͼ»á¾¹ýºÜ¶à²Ù×÷£¬È»ºó¿ÉÒÔÓÃrestore()Ö±½Ó»Ö¸´ÔÏȵÄ״̬£¬¶ø²»ÓÃÔٱ任µ½ÔÀ´µÄ״̬¡£Õâ¸öAPIÔÚÐèÒª½øÐкܶà±ä»»µÄʱºòÌرðÓÐÓá£
±ÈÈç˵ÔÚÒ»¿ªÊ¼ÏÈÓÃsave()±£´æÁËcanvas×îÏȵÄ״̬£¬Ò²¾ÍÊÇû¾¹ýÈκβÙ×÷µÄ״̬£¬È»ºó¿ªÊ¼ÓÃcanvas»æͼAPI»æͼ£¬Öмä¶ÔstrokeStyle¡¢lineWidth¡¢globalAlphaµÈºÜ¶àÊôÐÔ½øÐÐÁËÐ޸ģ¬»¹½øÐÐÁËƽÒÆ¡¢ÐýתµÈµÈ±ä»»²Ù×÷£¬Õâʱ£¬Èç¹ûÓÖÒªÖØÐÂÔٻij¸öͼÐΣ¬¶ø»Õâ¸öͼÐÎÒª±ä»»»ØÔÀ´×îÏȵÄ״̬²Å·½±ã»£¬ÄÇôֱ½Órestore()±ä»Ø×î³õ±£´æµÄ״̬¾ÍÐУ¬·ñÔò£¬ÓÖÒªÖØÐÂƽÒÆ¡¢Ðýת£¬¶Ô¸÷ÖÖÊôÐÔ¸³Öµ£¬²Å±ä»ØÐèÒªµÄ״̬£¬»á·Ç³£Âé·³¡£¶øsave()ºÍrestore()Á½Ðоͽâ¾öÁËÕâ¸öÎÊÌâ¡£
ctx .)...)....)..)..)
½á¹û ƽÒÆtranslate(x, y)
½«canvasÑØxÖáƽÒÆx¸öµ¥Î»£¬ÑØyÖáƽÒÆy¸öµ¥Î»¡£
ƽÒÆÊÇ»áÒƶ¯»²¼µÄ£¬ÊÇ»²¼µÄλÖñäÁË¡£
Àý×Óctx (i ij j.((i) .i .)
½á¹û Ðýתrotate(angle)
ÒÔÔµã(0, 0)ΪÖÐÐĵ㣬Ðýתangle»¡¶È¡£
Èç¹ûÒªÒÔ»²¼µÄÖÐÐĵãΪÐýתµã£¬ÐèÒªÓÃtranslate()ƽÒÆ»²¼¡£
ÐýתҲÊÇÕë¶Ô»²¼µÄ¡£
ctx ...))..)..))..)..); }
½á¹û Ëõ·Åscale(x, y)
ÔÚˮƽ·½ÏòËõ·Åx¸öµ¥Î»£¬ÔÚ´¹Ö±·½ÏòËõ·Åy¸öµ¥Î»¡£
x, y¿ÉÒÔÊǸºÊý£¬Èç¹ûÊǸºÊýµÄ»°£¬Í¼Æ¬¾Í»á³Ê¾µÏñ¡£±ÈÈçÕâÐдúÂëtranslate(0,canvas.height); scale(1,-1);¾Í½«canvas´¹Ö±·×ª£¬×ø±êÔµã±ä³ÉÁË×óϽǡ£
ctx .)).).); }
½á¹û ±ä»»¾ØÕótransform(a, b, c, d, e, f)
½«µ±Ç°µÄ±ä»»¾ØÕó³ËÉÏ [a, b, c, d, e, f, 0, 0, 1] (ÊǸö3X3µÄ¾ØÕó)¡£
¸÷¸ö²ÎÊý±íʾµÄ±ä»»ÈçÏ£º
a (m11)
ˮƽËõ·Å¡£
b (m12)
ˮƽбÇС£
c (m21)
´¹Ö±Ð±ÇС£
d (m22)
´¹Ö±Ëõ·Å¡£
e (dx)
ˮƽƽÒÆ¡£
f (dy)
´¹Ö±Æ½ÒÆ¡£
ҪʵÏÖбÇеĻ°£¬Ö»ÄÜÓñ任¾ØÕó¡£
setTransform(a, b, c, d, e, f)
ÖØÉ赱ǰ±ä»»¾ØÕ󣬲¢½øÐб任¡£
resetTransform()
½«µ±Ç°¾ØÕóÉèÖÃΪͬµÈ±ä»»¾ØÕó¡£Ï൱ÓÚÕâÐÐctx.setTransform(1, 0, 0, 1, 0, 0);
ctx sin cos .)(i i++) { c i)c c c .)sin).).); }
½á¹û
¡¡