processingのタグがつけられたコード一覧

Processing Rpples on Processing

ArrayList <Ripple>ripples;

void setup() {
  size(500, 500);
  ripples = new ArrayList();
  ripples.add(new Ripple());
}
int a=255;
int radius = 10;

int c = 0;
void draw() {
  background(100);
  noFill();
  strokeWeight(2);

  for(int i = 0; i < ripples.size(); i++){
    ripples.get(i).draw();
  }

  if( ( c % 40 ) == 0 ){
    ripples.add(new Ripple());
  }

  c++;
}

public class Ripple{
  float radius = 0;
  int lineColor = 255;

  public Ripple(){
    this.radius = 0;
    this.lineColor = 255;
  }

  public void draw(){
    stroke(255, this.lineColor);
    ellipse(width/2, height/2, radius, radius);
    this.radius += 2;
    this.lineColor -= 2;
  }
}

Processing キャンバスの左右反転

final int WIDTH=300,HEIGHT=200;
int x=WIDTH/2,y=HEIGHT/3,r=10;
int xdirection = 1; 

void setup() {
  size(WIDTH, HEIGHT,P2D);
  textSize(32);
}

void draw() {

  background(0);
  text("ABCDE", WIDTH/4, HEIGHT/2);
  x += xdirection ;
  if(x+r>WIDTH || x-r <0){
    xdirection *= -1;
  }
  ellipse(x,y,r*2,r*2);

  //以下の3つを追加することで、既存のキャンバスを反転させる
  PImage img = g.get();//既に描画しているキャンバスのイメージ画像を取得する
  scale(-1,1);          //以降のものは反転させる
  image(img,-WIDTH,0);  //
}

Processing シェーダバージョンチェック

import javax.media.opengl.*;
PShader sd;  //  シェーダ

void setup() {
  size(600, 600, P2D);
  println(((PGraphicsOpenGL )g).pgl.gl.glGetString(GL.GL_VERSION));
  println(((PGraphicsOpenGL )g).pgl.gl.glGetString(GL2.GL_SHADING_LANGUAGE_VERSION));

  sd = loadShader("FragmentShader.glsl");
}

void draw() {
  shader(sd);

  rect(0, 0, width, height);
}

//---以降はGLSLファイルの内容です。dataディレクトリにFragmentShader.glslと言う名称で保存してください。
const float NEON_WIDTH = 50.0;  // 基準点からネオンが有効な距離

void main()
{
  vec4 col = vec4(0, 0, 0, 1);

  //  基準の位置を決定
  float h = 100f;

  //  cは、座標が基準位置ぴったりであれば1.0。そこからNEON_WIDTHの範囲内であれば、距離に応じて1.0~0.0となる。
  float t = abs(gl_FragCoord.y - h) / NEON_WIDTH;
  float c = 1.0 - t;

  //  結果が0より大きければ、色を加算する。
  if(c > 0.0)
  {
    c = pow(c, 3.0);
    vec3 rc = vec3(c, c, c);
    col += vec4(rc, 1);
  }
  gl_FragColor = vec4(col);
}

Java rpgつくりかけ

final int CHIP = 30;
int masu_x = 16;
int masu_y = 16;

int[][] map = {{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
               {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
               {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
               {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
               {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
               {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
               {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
               {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
               {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
               {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
               {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
               {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
               {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
               {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
               {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
               {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
               };

String imgName[] = {"kusa.bmp", "stone3.bmp", "heroD.bmp"};//随時ココに追加しなければならない・・・.
PImage img[] = new PImage[20];//ここのサイズを指定しなければならない・・・.
//-------------------------------------------------------------------
void setup() {
  size(CHIP * masu_x, CHIP * masu_y);
  for(int i = 0; i < imgName.length; i++){
    img[i] = loadImage(imgName[i]);
  }
}

void draw() {
  for (int i = 0; i < masu_y; i++) {
    for (int k = 0; k < masu_x; k++) {
      image(img[map[i][k]], k * CHIP, i * CHIP, CHIP,CHIP);//map[y][x]であることに注意
    }
  }
}

Processing Processing で 1次元セルオートマトン ルール30

//1次元セルオートマトン? あってるかどうかはわかりまっせん

int NUM = 100; //細胞数

int [] cell = new int[NUM];//細胞が生きているかどうかのフラグ 0:死 1:生

int [] dcell = new int[NUM];//直前の細胞の生死フラグを判定する

int Rsize = 2;//四角形のサイズ

int right=0, left=0;//セルの右左の配列の添字を入れる変数

int size = 0;

void setup() {

  size(200, 500);
  smooth();
  background(255);

  for (int i=0; i<NUM; i++) {//細胞のフラグを初期化する

    //randomの帰り値はfloatなのでキャスト 0 - 2 の乱数を発生させ intにキャストすると 0 か 1 という値が入るので初期化できる
    //cell[i] = int(random(0, 2));

    cell[i] = 0;
    if(i == 49){
      cell[i] = 1;
    }

    //値を直前の細胞の配列にコピーする
    dcell[i] = cell[i];

    }
}

void draw() {

  drawCells(cell, size);//細胞を描画する

  for (int i=0; i<NUM; i++) {//ここから配列の処理

    //配列の添字関係の処理
    //変数 leftは現在のセルの左の配列 つまり i - 1 変数rightは現在のセルの右の配列 つまり i + 1でアクセスできる
    if (i == 0) {//配列が左端の場合,最後の配列とを参照することで配列が円状になっているようにする
      left = NUM - 1;
      right = i + 1;
    }

    else if (i == 99) {//配列が右端まで来た場合、最初の配列要素を参照する elseをつけないとダメ
      left = i - 1;
      right = 0;
    }

    else {//それ以外の場合 上でelseを付けないと i = 0のとき 0 - 1 で -1の添字ができてしまう
      left = i - 1;
      right = i + 1;
      println("配列添え字"+"["+left+"]");
    }
    //配列の添字処理修了

    //現在のセルが死んでいる場合の処理
    if (dcell[i] == 0) {

      deadecell(i);
    }//現在のセルが死んでいる場合の処理修了

    else if (dcell[i] == 1) {//現在のセルが生きている場合の処理 条件は玲のごとくもっとスマートに書けると思われ

      alivecell(i);
    }

  }

  for(int i=0; i<NUM; i++){//判定したcellの値を直前の値として保存する
    dcell[i] = cell[i];
  }

  size = size + Rsize;//細胞の描画開始位置を 1段下へする
}

void drawCells(int[] cells, int size) {//セルを生死フラグを元に描画する関数 引数は生死フラグが入った配列 sizeは細胞を描画するy軸を決める

  for (int i=0; i<NUM; i++) {//細胞の生死フラグを元に四角形を描画する
    fill(0);//細胞の色 黒

    if (cells[i] == 0) {//死んでいるなら白くする

      fill(255);
    }

    //細胞を描画する
    rect(i*Rsize,size, Rsize, Rsize);
  }
}

void deadecell(int i) {//セルが死んでいる時の判定を行う関数 iはforループ時の変数 比較は直前の細胞のフラグが入ってる配列に対して行う、

  if (dcell[left] == 1 && dcell[right] == 1) {//両隣とも生きている場合 過密 なのでセルは死んだまま

    cell[i] = 0;
  }
  else if (dcell[left] == 1 && dcell[right] == 0 || dcell[left] == 0 && dcell[right] == 1) {//右左どちらかが生きている場合は 誕生する

    cell[i] = 1;
  }

  else if (dcell[left] == 0 && dcell[right] == 0) {//両隣とも死んでいる場合 過疎 なので セルは死んだまま

    cell[i] = 0;
  }
}

void alivecell(int i) {//セルが生きている場合の判定を行う関数 iはforループ時の変数

  if (dcell[left] == 1 && dcell[right] == 1) {//両隣のセルが生きていると過密なので セルは死ぬ

    cell[i] = 0;
  }

  else if (dcell[left] == 1 && dcell[right] == 0 ) {//左のセルが生きている場合 セルは死ぬ

    cell[i] = 0;
  }

  else if (dcell[right] == 1 && dcell[left] == 0) {//右のセルが生きている場合 セルは生き続ける

    cell[i] = 1;
  }

  else if (dcell[left] == 0 && dcell[right] == 0) {//両隣のセルが死んでいる場合でも セルは生き続ける

    cell[i] = 1;
  }
}//修了

Processing 画像の左右反転

PImage a;
void setup() {
  size(200, 200);
  a = loadImage("jelly.jpg");//好きな画像を
  noLoop();
}

void draw() {
  scale(-1,1);//画面を反転させる。
  image(a, -width, 0); 

  scale(-1,1);//もとに戻す
  image(a, 100, 100);//分かりやすいように100,100の位置に重ねて描いてみる
}

Java シャネルのロゴ2

int DIAMETER = 70;
int STROKE_WIGHT = 12;
int Y = 100;

size(200, 200);

noFill();
smooth();
strokeWeight(STROKE_WIGHT);
strokeCap(SQUARE);

arc(120, Y, DIAMETER, DIAMETER, radians(30), radians(330));
arc(80, Y, DIAMETER, DIAMETER, radians(210), radians(360+150));

filter(BLUR, 6);

arc(120, Y, DIAMETER, DIAMETER, radians(30), radians(330));
arc(80, Y, DIAMETER, DIAMETER, radians(210), radians(360+150));

Java シャネルのロゴ

int DIAMETER = 70;
int STROKE_WIGHT = 12;
int Y = 100;

size(200,200);

noFill();
smooth();
strokeWeight(STROKE_WIGHT);
strokeCap(SQUARE);
arc(120,Y, DIAMETER, DIAMETER, radians(30),radians(330));
arc(80,Y, DIAMETER, DIAMETER, radians(210),radians(360+150));

Java クリップボード

import java.awt.datatransfer.*;
import java.awt.Toolkit;

void setup() {
  setClipboardString("abc");//クリップボードにテキストを設定
  println(getClipboardString());//クリップボードからテキストを取得
}

/**
 * クリップボードにテキストを設定します。
 * @param text 設定するテキスト
 */
void setClipboardString(String text) {
  Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
  StringSelection stringSelection = new StringSelection(text);
  clipboard.setContents(stringSelection, stringSelection);
}

/**
 * クリップボードからテキストを取得します。
 * @return
 */
String getClipboardString() {
  Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
  String str = "";
  try {
    str = (String)clipboard.getContents(null).getTransferData(DataFlavor.stringFlavor);
  }
  catch(UnsupportedFlavorException e) {
    return null;//e.printStackTrace();
  }
  catch (IOException e) {
    return null;//e.printStackTrace();
  }
  return str;
}

Java キーイベントドリブン

void setup (){
  println("setup");
  noLoop();
}
void draw (){
  println("draw");
}
void keyPressed (){
  println("keyPressed");
  redraw();
}
Total Pages: 1 / 3123

よく投稿されているコード

タグ

最近投稿されたコード