mirror of
https://github.com/dyne/FreeJ.git
synced 2026-02-05 20:49:15 +01:00
processing-js 0.4 has been merged in some relevant parts basic and topic scripts added for test color handling fixed, more scripts show up now
98 lines
1.8 KiB
Plaintext
98 lines
1.8 KiB
Plaintext
EggRing er1, er2;
|
|
|
|
void setup()
|
|
{
|
|
size(200, 200);
|
|
smooth();
|
|
er1 = new EggRing(66, 132, 0.1, 66);
|
|
er2 = new EggRing(132, 180, 0.05, 132);
|
|
}
|
|
|
|
void draw()
|
|
{
|
|
background(0);
|
|
er1.transmit();
|
|
er2.transmit();
|
|
}
|
|
|
|
class EggRing
|
|
{
|
|
Egg ovoid;
|
|
Ring circle = new Ring();
|
|
EggRing(int x, int y, float t, float sp) {
|
|
ovoid = new Egg(x, y, t, sp);
|
|
circle.start(x, y - sp/2);
|
|
}
|
|
void transmit() {
|
|
ovoid.wobble();
|
|
ovoid.display();
|
|
circle.grow();
|
|
circle.display();
|
|
if (circle.on == false) {
|
|
circle.on = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
class Egg {
|
|
float x, y; // X-coordinate, y-coordinate
|
|
float tilt; // Left and right angle offset
|
|
float angle; // Used to define the tilt
|
|
float scalar; // Height of the egg
|
|
// Constructor
|
|
Egg(int xpos, int ypos, float t, float s) {
|
|
x = xpos;
|
|
y = ypos;
|
|
tilt = t;
|
|
scalar = s / 100.0;
|
|
}
|
|
void wobble() {
|
|
tilt = cos(angle) / 8;
|
|
angle += 0.1;
|
|
}
|
|
void display() {
|
|
noStroke();
|
|
fill(255);
|
|
pushMatrix();
|
|
translate(x, y);
|
|
rotate(tilt);
|
|
scale(scalar);
|
|
beginShape();
|
|
vertex(0, -100);
|
|
bezierVertex(25, -100, 40, -65, 40, -40);
|
|
bezierVertex(40, -15, 25, 0, 0, 0);
|
|
bezierVertex(-25, 0, -40, -15, -40, -40);
|
|
bezierVertex(-40, -65, -25, -100, 0, -100);
|
|
endShape();
|
|
popMatrix();
|
|
}
|
|
}
|
|
|
|
class Ring {
|
|
float x, y; // X-coordinate, y-coordinate
|
|
float diameter; // Diameter of the ring
|
|
boolean on = false; // Turns the display on and off
|
|
void start(float xpos, float ypos) {
|
|
x = xpos;
|
|
y = ypos;
|
|
on = true;
|
|
diameter = 1;
|
|
}
|
|
void grow() {
|
|
if (on == true) {
|
|
diameter += 0.5;
|
|
if (diameter > width*2) {
|
|
diameter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
void display() {
|
|
if (on == true) {
|
|
noFill();
|
|
strokeWeight(4);
|
|
stroke(155, 153);
|
|
ellipse(x, y, diameter, diameter);
|
|
}
|
|
}
|
|
}
|