added notes

This commit is contained in:
Sam
2022-03-14 15:41:16 +13:00
parent a71f0c97a2
commit a63bee2540
9 changed files with 22 additions and 20 deletions

View File

@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html>
<head>
<title>Parcel Sandbox</title>
<meta charset="UTF-8" />
</head>
<body>
<div id="app"></div>
<canvas id="canvas" width="500" height="500">
<script src="src/index.js">
</script>
</body>
</html>

View File

@@ -0,0 +1,116 @@
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
const points = [
[50, 250],
[450, 250],
];
let step = 0;
let speed = 8;
let opening = true;
let counter = 0;
let cooldown = 0;
function draw() {
ctx.strokeStyle = "orange";
ctx.fillStyle = "black";
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillRect(0, 0, 500, 500);
// let newPath = new Path2D();
// newPath.arc(150, 75, 75, 0, 2 * Math.PI);
ctx.beginPath();
ctx.rect(100, 100, 300, 300);
ctx.stroke();
drawEyelid(step);
ctx.save();
// squareCut();
eyelidCut(step);
if (counter % 100 == 0) {
counter = 0;
}
drawGrowEye(100 + counter);
drawCircle(100);
ctx.restore();
stepFunc();
counter++;
window.requestAnimationFrame(draw);
}
function stepFunc() {
if (cooldown != 0) {
cooldown--;
} else {
if (opening == true) {
if (step >= 200) {
cooldown = 200;
opening = false;
step -= speed;
} else {
step += speed;
}
} else {
if (step <= 0) {
opening = true;
step += speed;
} else {
step -= speed;
}
}
}
}
function squareCut() {
let squarePath = new Path2D();
squarePath.rect(100, 100, 300, 300);
ctx.clip(squarePath);
}
function drawGrowEye(step) {
ctx.strokeStyle = "aqua";
ctx.beginPath();
ctx.lineWidth = 5;
ctx.arc(250, 250, step, 0, 2 * Math.PI);
ctx.stroke();
ctx.strokeStyle = "orange";
}
function eyelidCut(step) {
// ctx.lineWidth = 1;
let squarePath = new Path2D();
squarePath.moveTo(points[0][0], points[0][1]);
squarePath.quadraticCurveTo(250, 250 - step, points[1][0], points[0][1]);
squarePath.moveTo(points[0][0], points[0][1]);
squarePath.quadraticCurveTo(250, 250 + step, points[1][0], points[0][1]);
ctx.clip(squarePath);
}
function drawCircle(step) {
ctx.beginPath();
ctx.lineWidth = 5;
ctx.arc(250, 250, step, 0, 2 * Math.PI);
ctx.stroke();
}
function drawEyelid(step) {
ctx.lineWidth = 1;
ctx.beginPath();
ctx.moveTo(points[0][0], points[0][1]);
ctx.quadraticCurveTo(250, 250 - step, points[1][0], points[0][1]);
ctx.moveTo(points[0][0], points[0][1]);
ctx.quadraticCurveTo(250, 250 + step, points[1][0], points[0][1]);
ctx.stroke();
}
window.requestAnimationFrame(draw);

View File

@@ -0,0 +1,3 @@
body {
font-family: sans-serif;
}

View File

@@ -0,0 +1,108 @@
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="1850" height="950" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>
<script>
function rad(degrees) {
var pi = Math.PI;
return degrees * (pi / 180);
}
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var sides = 5;
var r = 250;
var rot = Math.round((sides - 2) * 180 / sides * 2)
var piv = 360 / sides;
var angle = 120;
startx = 1850/2//1875/2;
starty = 950/2//950/2;//-(Math.tan(30*Math.PI/180)*width/2);
var stt = 0.5 * Math.PI - rad(rot) + rad(angle);
var end = 0;
for (let j = 0; j < 14; j++) {
setTimeout(() => {
for (let i = 1; i < sides + 1; i++) {
end = stt + rad(rot);
ctx.beginPath();
ctx.arc(startx + Math.cos(rad(90 + piv * i + angle)) * r, starty + Math.sin(rad(90 + piv * i + angle)) * r, r, stt, end, 0);
//ctx.arc(startx+ 200*i, starty, r, stt, end ,0);
ctx.strokeStyle = "black";
ctx.stroke();
stt = end + -(rad(rot - piv));
}
angle += j;
}, 100 * j);
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
}
/*
sides = 6;
r = 700;
rot = Math.round((sides - 2)*180/sides*2)
piv = 360/sides;
width = Math.cos(30*Math.PI/180)*r*2;
startx = 1500//1875/2;
starty = 1500//950/2;//-(Math.tan(30*Math.PI/180)*width/2);
stt =0.5*Math.PI - rad(rot);
end = 0;
for (let i = 1; i < sides +1 ; i++) {
end = stt + rad(rot)
ctx.beginPath();
ctx.arc(startx+ Math.cos(rad(90+piv*i))*r, starty+ Math.sin(rad(90+piv*i))*r, r, stt, end ,0);
//ctx.arc(startx+ 200*i, starty, r, stt, end ,0);
ctx.stroke();
stt = end+ -(rad(rot-piv));
}
*/
/*
ctx.beginPath();
ctx.moveTo(300-50, 300);
ctx.lineTo(300+50, 300);
ctx.strokeStyle = "red";
ctx.stroke();
ctx.beginPath();
ctx.moveTo(300, 300-50);
ctx.lineTo(300, 300+50);
ctx.strokeStyle = "red";
ctx.stroke();
*/
// ctx.beginPath();
// ctx.moveTo(startx + Math.cos(rad(90 + 120 * 1)) * r, starty + Math.sin(rad(90 + 120 * 1)) * r);
// ctx.lineTo(startx + Math.cos(rad(90 + 120 * 2)) * r, starty + Math.sin(rad(90 + 120 * 2)) * r);
// ctx.lineTo(startx + Math.cos(rad(90 + 120 * 3)) * r, starty + Math.sin(rad(90 + 120 * 3)) * r);
// ctx.lineTo(startx + Math.cos(rad(90 + 120 * 1)) * r, starty + Math.sin(rad(90 + 120 * 1)) * r);
// ctx.strokeStyle = "red";
// ctx.stroke();
// ctx.beginPath();
// ctx.moveTo(startx + Math.cos(rad(90 + 120 * 1 + 60)) * r, starty + Math.sin(rad(90 + 120 * 1 + 60)) * r);
// ctx.lineTo(startx + Math.cos(rad(90 + 120 * 2 + 60)) * r, starty + Math.sin(rad(90 + 120 * 2 + 60)) * r);
// ctx.lineTo(startx + Math.cos(rad(90 + 120 * 3 + 60)) * r, starty + Math.sin(rad(90 + 120 * 3 + 60)) * r);
// ctx.lineTo(startx + Math.cos(rad(90 + 120 * 1 + 60)) * r, starty + Math.sin(rad(90 + 120 * 1 + 60)) * r);
// ctx.strokeStyle = "red";
// ctx.stroke();
</script>
</body>
</html>

View File

@@ -0,0 +1,74 @@
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="600" height="600" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>
<script>
function rad(degrees)
{
var pi = Math.PI;
return degrees * (pi/180);
}
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var r = 100;
var width = Math.cos(30*Math.PI/180)*r*2;
startx = 300;
starty = 300;//-(Math.tan(30*Math.PI/180)*width/2);
var stt =0.5;
var stt1 = (stt-2/3)*Math.PI;
var end1 = (stt)*Math.PI ;
var stt2 = end1;
var end2 = stt2+(2/3)*Math.PI;
var stt3 = end2;
var end3 = stt3+(2/3)*Math.PI;
ctx.beginPath();
ctx.arc(startx+ Math.cos(rad(90+120*1))*r, starty+ Math.sin(rad(90+120*1))*r, r, stt1, end1 ,0);
ctx.stroke();
ctx.beginPath();
ctx.arc(startx+ Math.cos(rad(90+120*2))*r, starty+ Math.sin(rad(90+120*2))*r, r, stt2, end2 ,0);
ctx.stroke();
ctx.beginPath();
ctx.arc(startx + Math.cos(rad(90+120*3))*r, starty+ Math.sin(rad(90+120*3))*r, r, stt3, end3 ,0);
ctx.stroke();
/*
ctx.beginPath();
ctx.moveTo(300-50, 300);
ctx.lineTo(300+50, 300);
ctx.strokeStyle = "red";
ctx.stroke();
ctx.beginPath();
ctx.moveTo(300, 300-50);
ctx.lineTo(300, 300+50);
ctx.strokeStyle = "red";
ctx.stroke();
*/
ctx.beginPath();
ctx.moveTo(startx+ Math.cos(rad(90+120*1))*r, starty+ Math.sin(rad(90+120*1))*r);
ctx.lineTo(startx+ Math.cos(rad(90+120*2))*r, starty+ Math.sin(rad(90+120*2))*r);
ctx.lineTo(startx+ Math.cos(rad(90+120*3))*r, starty+ Math.sin(rad(90+120*3))*r);
ctx.lineTo(startx+ Math.cos(rad(90+120*1))*r, starty+ Math.sin(rad(90+120*1))*r);
ctx.strokeStyle = "red";
ctx.stroke();
</script>
</body>
</html>