いつもお世話になっています。
前提・実現したいこと
表題通りです。
円柱の曲面に文字や図形を表示したいです。
テクスチャマッピングなるもので要件を満足する方法があるのですが、
エディター内で、文字や図形の大きさを直接弄ることが出来ないので
他に良い方法がないものかと思案しております。
該当のソースコード
こちらを参考にしました。
円柱のコードですが、ここに追加する形で実現したいです。
processing
1import processing.opengl.*; 2float rad = 0; 3void setup(){ 4size(400, 400, OPENGL); 5} 6void draw(){ 7rad = rad + 1; 8noStroke(); 9directionalLight(255,255,255,1,1,-1); 10background(0); 11translate(width/2, height/2,0); 12 13pillar(150, 50 , 50); //円柱の作成(長さ,上面の半径,底面の半径) 14} 15void pillar(float length, float radius1 , float radius2){ 16 17float x,y,z; 18pushMatrix(); 19//上面の作成 20beginShape(TRIANGLE_FAN); 21y = -length / 2; 22vertex(0, y, 0); 23for(int deg = 0; deg <= 360; deg = deg + 10){ 24x = cos(radians(deg)) * radius1; 25z = sin(radians(deg)) * radius1; 26vertex(x, y, z); 27} 28endShape(); //底面の作成 29beginShape(TRIANGLE_FAN); 30y = length / 2; 31vertex(0, y, 0); 32for(int deg = 0; deg <= 360; deg = deg + 10){ 33x = cos(radians(deg)) * radius2; 34z = sin(radians(deg)) * radius2; 35vertex(x, y, z); 36} 37endShape(); 38//側面の作成 39beginShape(TRIANGLE_STRIP); 40for(int deg =0; deg <= 360; deg = deg + 5){ 41x = cos(radians(deg)) * radius1; 42y = -length / 2; 43z = sin(radians(deg)) * radius1; 44vertex(x, y, z); 45x = cos(radians(deg)) * radius2; 46y = length / 2; 47z = sin(radians(deg)) * radius2; 48vertex(x, y, z); 49} 50endShape(); 51popMatrix(); 52}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/22 04:29
2018/02/22 04:46
2018/02/22 04:47