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...