sphere
This commit is contained in:
commit
9c527bec23
3 changed files with 147396 additions and 0 deletions
21
index.html
Normal file
21
index.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<title>p5.js</title>
|
||||
<script src="lib/p5.js"></script>
|
||||
<style>
|
||||
body {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
background-color: #1b1b1b;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
</main>
|
||||
<script src="sketch.js"></script>
|
||||
</body>
|
||||
</html>
|
147309
lib/p5.js
Normal file
147309
lib/p5.js
Normal file
File diff suppressed because one or more lines are too long
66
sketch.js
Normal file
66
sketch.js
Normal file
|
@ -0,0 +1,66 @@
|
|||
let charges = new Map();
|
||||
let counter = 0;
|
||||
|
||||
function setup() {
|
||||
createCanvas(600, 600, WEBGL);
|
||||
}
|
||||
|
||||
function draw() {
|
||||
orbitControl();
|
||||
background(50);
|
||||
|
||||
make_lights();
|
||||
draw_sphere(200, 25);
|
||||
}
|
||||
|
||||
function draw_sphere(radius, n_axis_circles) {
|
||||
stroke(0x3f);
|
||||
noFill();
|
||||
|
||||
push();
|
||||
rotateX(TAU / 4);
|
||||
draw_circles(
|
||||
radius,
|
||||
n_axis_circles,
|
||||
color(0x00, 0x9f, 0xff),
|
||||
color(0xff, 0x9f, 0x00),
|
||||
);
|
||||
pop();
|
||||
push();
|
||||
rotateY(TAU / 4);
|
||||
draw_circles(
|
||||
radius,
|
||||
n_axis_circles,
|
||||
color(0xff, 0x00, 0xff),
|
||||
color(0x00, 0xff, 0x00),
|
||||
);
|
||||
pop();
|
||||
}
|
||||
|
||||
function draw_circles(radius, n_circles, pole_1_color, pole_2_color) {
|
||||
push();
|
||||
stroke(pole_1_color);
|
||||
translate(0, 0, -radius);
|
||||
point(0, 0);
|
||||
pop();
|
||||
for (let i = 1; i < n_circles; i += 1) {
|
||||
const angle = map(i, 0, n_circles - 1, -TAU / 4, TAU / 4);
|
||||
const circle_radius = radius * cos(angle);
|
||||
push();
|
||||
translate(0, 0, radius * sin(angle));
|
||||
circle(0, 0, circle_radius * 2);
|
||||
pop();
|
||||
}
|
||||
push();
|
||||
stroke(pole_2_color);
|
||||
translate(0, 0, radius);
|
||||
point(0, 0);
|
||||
pop();
|
||||
}
|
||||
|
||||
function make_lights() {
|
||||
let light = createVector(0, 1, -1);
|
||||
light.normalize();
|
||||
directionalLight(0x1f, 0x1f, 0x1f, light);
|
||||
ambientLight(0xbf);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue