壁で反射のあるn体問題もどき (2025/8/4)
https://gyazo.com/283bf5f7a0f900b53c48ff99be923634 https://gyazo.com/ba63c71fe440be8a62fc4d938d61be10 https://gyazo.com/bab6cbb7071ae913d90bb90feefd4a95
https://scrapbox.io/files/6890b9774630e25148e90651.mp4
https://x.com/hisadan/status/1952364641566572771
https://x.com/hisadan/status/1952364644053705185
https://x.com/hisadan/status/1952364646230553017
code:processing
//#Processing
int n=15, i, s;
float p[]=new floatn*4, d;
void setup() {
size(800, 800);
for (i=0; i<n*2; i++) {
pi=300-random(600);
pi+n*2=1-2*random(1);
}
background(0);
colorMode(HSB);
}
void draw() {
noStroke();
fill(0, 9);
square(0, 0, 800);
fill(-1, 20);
translate(400, 400);
for (i=0; i<n; i++)for (s=0; s<n; s++) {
if (i!=s) {
d=dist(pi, pi+n, ps, ps+n);
pi+n*2+=(ps-pi)/d/d/2;
pi+n*3+=(ps+n-pi+n)/d/d/2;
}
pi+n*2=constrain(pi+n*2, -1, 1);
pi+n*3=constrain(pi+n*3, -1, 1);
if (abs(pi+pi+n*2)>400)pi+n*2*=-1;
if (abs(pi+n+pi+n*3)>400)pi+n*3*=-1;
fill(i*20, 255, 255, 300/abs(1/(sq(pi+n*2)+sq(pi+n*3))));
circle(pi+=pi+n*2, pi+n+=pi+n*3, constrain(abs(9/(sq(pi+n*2)+sq(pi+n*3))), 1, 99));
}
}