現在、引き続き、重なった図形をランダムドット・ステレオグラムの描き方の解説記事を準備中です。

このランダムドット・ステレオグラムはすでに完成していて、7/21の記事「重なった図形のランダムドット・ステレオグラムの解説を準備中」で紹介していました。

今回はやっとこのランダムドット・ステレオグラムで見えてくる立体図形ができたので、載せておきます。以下のような、真ん中が空いていてカーブしている四角形と円環が鎖状に交わったような図形になります。

立体図形

この立体図形を作るのになぜか時間がかかってしまいましたが、まあとにかくできたのでよかった、よかった。

この図形を作ったときに勉強になったのは円環の描き方です。最初、この円環を作るのにellipse関数で円を描き、strokeWeight関数を調整することで円の線を太くすることで円環を作ろうと考えました。コードとしては以下のようなものです。

noFill();
stroke(255,0,0);
strokeWeight(2.0/3.0*r);
ellipse(r/3.0, r/3.0, 2.0*r, 2.0*r);

でも、これで実際に描いてみると、平面上の円環ではなく、3次元空間上のドーナツ型になってしまいました。これは立体図形をえがくということで最初の設定でsize(1000, 1000, P3D)と3次元表示にしていたからです。

今回は空間上に浮いたような円環を描きたかったので、beginShape、endShape関数を使ってvertexをつないでいくことで作りました。

  fill(255,0,0);
  beginShape();
  for(int i=0; i<=360; i++){
    vertex(r/3.0+4.0/3.0*r*cos(radians(i)), r/3.0+4.0/3.0*r*sin(radians(i)));
  }
  for(int i=0; i<=360; i++){
    vertex(r/3.0+2.0/3.0*r*cos(-radians(i)), r/3.0+2.0/3.0*r*sin(-radians(i)));
  }
  endShape(CLOSE);