poonis
HTML
<!DOCTYPE html>
<title>jav ass script</title>
<meta charset="utf-8"/>
<canvas id="canvas" width="800" height="800" oncontextmenu="return false"></canvas>
<script>
Math.radians=function(degrees){
return degrees*Math.PI/180
}
Math.degrees=function(radians){
return radians*180/Math.PI
}
//random
function randint(min,max) {
return Math.floor(Math.random()*(max-min+1))+min; //min max included (no+1 for max excl)
}
function randfloat(min,max){
return min+Math.random()*(max-min)
}
function randchoice(list){
return list[randint(0,list.length-1)]
}
Math.nthroot = function(x,n) {
//if x is negative function returns NaN
return this.exp((1/n)*this.log(x))
}
class Point{
constructor(x=0,y=0){
this.x=x
this.y=y
}
copy(){
return new Point(this.x,this.y)
}
setfrom(p2,ang,dist){
let rang
rang=Math.radians(ang)
this.x=p2.x+(Math.cos(rang)*dist)
this.y=p2.y+(Math.sin(rang)*dist)
}
draw(ctx){
ctx.beginPath()
ctx.arc(this.x,this.y,3,0,2*Math.PI)
ctx.stroke()
}
}
function getpath(yangoff,angstarts,angsteps,nsteps){
let ps,j,p,i,subrad,radianstarts,radiansteps,yradianoff
ps=[]
radianstarts=[]
radiansteps=[]
for(i=0;i<angstarts.length;i++){
radianstarts.push(Math.radians(angstarts[i]))
radiansteps.push(Math.radians(angsteps[i]))
}
yradianoff=Math.radians(yangoff)
subrad=400/angstarts.length
for(j=0;j<nsteps;j++){
p=new Point()
p.x=Math.sin(radianstarts[0])*subrad
for(i=1;i<angstarts.length;i++){
p.x+=Math.sin(radianstarts[i])*subrad
}
p.y=Math.sin(radianstarts[0]+yradianoff)*subrad
for(i=1;i<angstarts.length;i++){
p.y+=Math.sin(radianstarts[i]+yradianoff)*subrad
}
ps.push(p.copy())
for(i=0;i<angstarts.length;i++){
radianstarts[i]+=radiansteps[i]
}
}
return ps
}
let can,ctx,cc,aa
can=document.getElementById('canvas')
ctx=can.getContext('2d')
/*
p=new Point(0,0)
a1=0
a2=0
a3=0
a4=0
*/
cc=0
aa=0.1
yangoff=90
roting=0
rotcount=0
function main(){
let...