Processing という,だいたい Java ベースでグラフィックス系に特化して初心者ホイホイを目指した感じの言語で書きました.
setup()
が起動時に呼ばれ, draw()
がその後繰り返し呼ばれるという感じになっていて,わかりやすく取っ付き易くてよいです.あと3次元とかもわりといい感じにできるし,svg とかをよしなにあれこれするのも得意と聞きました.ちなみに大変取っ付き易く使いやすくてよい,みたいな話を友人にしたら「そのくらいなら OpenGL とかそのまま叩いても簡単にできるよ」との旨宣告されました.PyOpenGL を触ろうとしたことは過去に何回かありましたが,そんなに描きたいものがなかったのと from OpenGL.GL import *
がちょっとなーとか思ったり色々で進捗ほとんどありません.ついでに,ああいうの glVertex2f(0.7,0.0)
とかより canvas.vertex2f(0.7,0.0)
みたいな書き方のほうが気持ちよく書けるんじゃないかなとか思ってるけどどうなんだろう….
1 /* 2 x_{n+1} = yn + axn 3 y_{n+1} = xn**2 + b 4 */ 5 6 int len = 1600; 7 int counter = 0; 8 int n = 5000; 9 int hue = 0; 10 int loop = 200; 11 float scaler = 500; 12 boolean abprinted = false; 13 14 float x = 0; 15 float y = 0; 16 float a= 0.18525845; float b=-1.1336243; 17 // or any other values you want 18 19 void setup(){ 20 size(len*3/2,len); 21 background(0); 22 //smooth(); 23 } 24 25 void draw(){ 26 translate(len/2, len/2); 27 scale(scaler); 28 strokeWeight(0.001); 29 if (counter <= loop){ 30 stepnext(); 31 println(counter); 32 counter ++; 33 } else { 34 println("______________"); 35 println(a,b); 36 println("______________"); 37 saveFrame("mypic.png"); 38 noLoop(); 39 } 40 if(keyPressed){ // in case you want to see. 41 println(x,y); 42 } 43 } 44 45 void stepnext(){ 46 colorMode(HSB,loop); 47 stroke(loop*200/360,loop,hue); 48 for (int i=0; i<=n; i++){ 49 point(x,y); 50 float nextx, nexty; 51 nextx = y + a*x; 52 nexty = x*x + b; 53 x = nextx; 54 y = nexty; 55 } 56 hue++; 57 }ついでに言うと java 全く知らないので
public
とか static
とか言われてもアレですごめんなさい.
更新はよ(バンバン
ReplyDelete