First commit.
This commit is contained in:
117
subsites/projects/canvas/box.htm
Normal file
117
subsites/projects/canvas/box.htm
Normal file
@@ -0,0 +1,117 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3c.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Canvas box</title>
|
||||
<style type='text/css'>
|
||||
* {
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
canvas {
|
||||
position:absolute;
|
||||
top:50%;
|
||||
left:50%;
|
||||
margin-top:-200px;
|
||||
margin-left:-320px;
|
||||
border:1px solid #000;
|
||||
}
|
||||
</style>
|
||||
<script type='text/javascript'>
|
||||
function box() {
|
||||
var ctx=document.getElementById('canvas').getContext('2d')
|
||||
var i
|
||||
if (x<0 || x>639 || y<0 || y>399) end=[320,-100]
|
||||
else {
|
||||
for (i=0;i<pl;i++) {
|
||||
if (p[i][0]==x) x++
|
||||
if (p[i][1]==y) y++
|
||||
}
|
||||
end=[x,y]
|
||||
}
|
||||
|
||||
if (end[1]>p[0][1]) l*=-1
|
||||
var ep=new Array()
|
||||
for (i=0;i<pl;i++) ep[i]=[p[i][0]-l/((end[1]-p[i][1])/(end[0]-p[i][0])),p[i][1]-l]
|
||||
ctx.clearRect(0,0,640,400)
|
||||
ctx.beginPath()
|
||||
for (i=0;i<pl;i++) {
|
||||
ni=i+1-Math.floor((i+1)/pl)*pl
|
||||
ctx.moveTo(p[i][0],p[i][1])
|
||||
ctx.lineTo(p[ni][0],p[ni][1])
|
||||
ctx.moveTo(p[i][0],p[i][1])
|
||||
ctx.lineTo(ep[i][0],ep[i][1])
|
||||
ctx.lineTo(ep[ni][0],ep[ni][1])
|
||||
}
|
||||
ctx.stroke()
|
||||
|
||||
if (p[2][0]>637) a=-1
|
||||
else if (p[0][0]<3) a=1
|
||||
for (i=0;i<pl;i++) p[i][0]+=a
|
||||
|
||||
if (p[2][0]-p[1][0]==75) z=-1
|
||||
else if (p[2][0]-p[1][0]==25) z=1
|
||||
p[2][0]+=z
|
||||
p[3][0]+=z
|
||||
|
||||
if (p[1][1]>397) b=-.5
|
||||
else if (p[0][1]<3) b=.5
|
||||
for (i=0;i<pl;i++) p[i][1]+=b
|
||||
|
||||
if (p[1][1]-p[0][1]==75) z=-1
|
||||
else if (p[1][1]-p[0][1]==25) z=1
|
||||
p[1][1]+=z
|
||||
p[2][1]+=z
|
||||
|
||||
if (l==-10) c=.5
|
||||
else if (l==40) c=-.5
|
||||
l+=c
|
||||
|
||||
setTimeout("box()",10)
|
||||
}
|
||||
|
||||
function load() {
|
||||
p=new Array()
|
||||
p[0]=[2,348]
|
||||
p[1]=[2,398]
|
||||
p[2]=[52,398]
|
||||
p[3]=[52,348]
|
||||
pl=p.length
|
||||
l=10
|
||||
c=.5
|
||||
z=-1
|
||||
x=-1
|
||||
y=-1
|
||||
|
||||
box()
|
||||
}
|
||||
|
||||
function getwh() {
|
||||
if (self.innerHeight) {
|
||||
h=self.innerHeight
|
||||
w=self.innerWidth
|
||||
}
|
||||
else if (document.documentElement && document.documentElement.clientHeight) {
|
||||
h=document.documentElement.clientHeight
|
||||
w=document.documentElement.clientHeight
|
||||
}
|
||||
else if (document.body) {
|
||||
h=document.body.clientHeight
|
||||
w=document.body.clientWidth
|
||||
}
|
||||
}
|
||||
|
||||
function mm(e) {
|
||||
getwh()
|
||||
x=Math.floor(e.pageX-(w-642)/2-2)
|
||||
y=Math.floor(e.pageY-(h-402)/2-2)
|
||||
}
|
||||
|
||||
window.onload=load
|
||||
document.onmousemove=mm
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<canvas id='canvas' width='640' height='400'></canvas>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user