Initializing
Liveweave
Web
expand_more
home
Home
data_object
CSS Explorer
arrow_outward
Palette
Color Explorer
arrow_outward
Polyline
Graphics Editor
arrow_outward
outbox_alt
Generative AI
arrow_outward
frame_source
Python Playground
New
arrow_outward
build
Tools
expand_more
restart_alt
Load "Hello Weaver!"
post_add
Generate Lorem ipsum...
code
Format HTML
code_blocks
Format CSS
data_object
Format JavaScript
library_add
Library
expand_more
A
Algolia JS
Animate CSS
Apex Charts JS
B
Bulma CSS
Bootstrap
C
Chart JS
Chartist
Create JS
D
D3
Dojo
F
Foundation
Fullpage JS
G
Granim JS
Google Charts
H
Halfmoon
J
jQuery
M
Materialize
Moment JS
Masonry JS
Milligram CSS
P
Pure CSS
Primer CSS
Popper JS
Pattern CSS
Picnic CSS
R
React JS
Raphael JS
Raisin CSS
S
Semantic UI
Skeleton CSS
Spectre CSS
Tachyons CSS
T
Tailwind
Three JS
U
UI Kit
Vis JS
W
Water CSS
download
Download
expand_more
developer_mode
Download as HTML
folder_zip
Download as .ZIP
cloud_upload
Save
account_circle
Login
settings
Settings
expand_more
14
px
Live mode
Night mode
Line number
Mini map
Word wrap
sync_alt
Reset Settings
smart_display
Run
<!DOCTYPE html> <html> <head> <title>使用save和restore繪製圖形</title> </head> <body> <!-- Start your code here --> <p class="lw"></p> <canvas id="m" width="1000" height="200"></canvas> <!-- End your code here --> </body> </html>
.lw { font-size: 60px; }
/* Write JavaScript here */ var canvas=document.getElementById('m'); var ctx=canvas.getContext('2d'); //儲å˜canvas會å˜åœ¨Stack內。Stack特性是最後儲å˜çš„æ•¸å€¼æœƒæœ€å…ˆé¡¯ç¤ºï¼Œæ‰€ä»¥å¦‚果呼å«restore方法,會顯示最近的æç¹ªç‹€æ…‹ï¼Œåœ¨å‘¼å«ä¸€æ¬¡çš„話就會顯示之å‰çš„狀態。// ctx.beginPath(); ctx.fillStyle="red"; ctx.arc(80, 80, 50, 0, Math.PI*2, true);//arc(x,y,r,starAngle, endAngle, anticlockwise) ctx.fill(); ctx.save(); ctx.beginPath(); ctx.fillStyle="yellow"; ctx.arc(210, 80, 50, 0, Math.PI*2, true); ctx.fill(); ctx.save(); ctx.beginPath(); ctx.fillStyle="#000000"; ctx.arc(340, 80, 50, 0, Math.PI*2, true); ctx.fill(); ctx.restore(); ctx.arc(470,80, 50, 0, Math.PI*2, true); ctx.restore(); ctx.arc(600, 80, 50, 0, Math.PI*2, true); ctx.fill();