Skip to content

Instantly share code, notes, and snippets.

@leeprobert
Last active November 16, 2015 10:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save leeprobert/09b712a244524467dba2 to your computer and use it in GitHub Desktop.
Save leeprobert/09b712a244524467dba2 to your computer and use it in GitHub Desktop.
Forked from [Mike Brondbjerg](http://codepen.io/brondbjerg/)'s Pen [p5js - 3D Spikey Plane
// rotation
var objRotateX = 0;
var objRotateY = 0;
var objRotateZ = 0;
function setup() {
createCanvas(windowWidth, windowHeight, WEBGL);
}
function draw() {
background(230);
doAnimate();
objRotate();
drawModel();
}
function drawModel() {
var spikeCount = 1000;
var spikeMaxLen = height/10;
var groupRadius = (height/2) - (height/10);
basicMaterial(32);
for (var s=0; s < spikeCount; s++) {
var noiseCoord = s;
var rnd = lerp(-1,1,noise(noiseCoord));
// translate
rotateY(PI*rnd);
rotateZ(PI*rnd);
translate(groupRadius,0,0);
plane(rnd * spikeMaxLen,0.5);
//reset translation
translate(-groupRadius,0,0);
rotateY(-(PI*rnd));
rotateZ(-(PI*rnd));
}
}
function doAnimate() {
// increment animation variables
objRotateX -= 0.1;
objRotateY -= 0.1;
objRotateZ -= 0.1;
}
function objRotate() {
rotateX(radians(objRotateX));
rotateY(radians(objRotateY));
rotateZ(radians(objRotateZ));
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.4.17/p5.min.js"></script>
body {
background:#e6e6e6;
margin: 0;
padding: 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment