ProceesingP3D

emacsによるpdeファイルの編集

mac osx上で.

  1. Processing(12/03/24)の環境設定で,"Use external editor"をcheck(最新版(13/02/24)には見当たらない)
  2. processing-mode.elをここよりダウンロード
  3. processing-mode.el
  4. .emacsを編集.
  5. 編集しようとするpdeファイルがあるdirectoryにprocessing-mode.elをいれて,下記のようにしている.
  6. あるいは,/usr/share/emacs/site-lispにcp
;; ===============================
;;  Processing mode
;; ==============================
(add-to-list 'load-path "./")
(autoload 'processing-mode "processing-mode" "Processing mode" t)
(add-to-list 'auto-mode-alist '("\\.pde$" . processing-mode))
(setq processing-location "/path/to/processing")

データの読み込み

FloatTable.pdeをダウンロードして,おなじフォルダーの中に入れておく.次のようにして,39行2列のデータを読み込んでいる.ただし,

  1. 用意するデータファイルの一行目はデータ名を期待している.あるいは,読み飛ばす
  2. すべての行の先頭はタブを入れておく.
FloatTable data;
float[][] data_point = new float[40][2];

  data = new FloatTable("tmp.data");
  for (int row = 0; row < 39; row++) {//tsv_gyou                                            
      for (int col = 0; col < 2; col++) {
          data_point[row][col] = size*data.getFloat(row, col)/2.0;
      }
  }

3次元表示

void setup() {
  size (800, 600, P3D);
  colorMode(RGB, 100);
}

で準備完了.translateで原点をずらしておくと便利.

  translate(width/2,height/2,0);
  camera(0, 0, depth/20, 0, 0, 0, 0, 1, 0);

坂本作のrotate部分.同じようにしてcameraの位置をうまく動かせばzoom, translateもできるはずだが...

  if (mousePressed) {
    mvX=mouseX-oldX;
    mvY=mouseY-oldY;
    oldX=mouseX;
    oldY=mouseY;
  }
  else {
    mvX=0;
    mvY=0;
    oldX=mouseX;
    oldY=mouseY;
  }
  nowX += mvX;
  nowY -= mvY;
  rotateX(radians(nowY/3));
  rotateY(radians(nowX/3));
Last modified:2016/07/19 12:42:25
Keyword(s):
References:[ProgrammingMemo]