Teachers open the door but You must enter by yourself.

PRIVATE

Open Media Lab.
オープンメディアラボ

$$ \newcommand\Vec[1]{\overrightarrow{\rm{#1}}} $$

座標変換
Transformation

平成17年度前期3級問題 第7問

void setup(){
  surface.setSize(400,400);
}

void draw(){
	translate(200, 200);
	scale(60, -60);
	strokeWeight(0.015); // = 1/60
	background(255); //white

	for(int i=-3; i<4; i++){
		if(i==0) stroke(0); // black
		else stroke(128);
		noFill();
		line(i,-4, i,4); // x-axis
		line(-4,i, 4,i); // y-axis
	}

	float[] x={ 0,  -1,   -2 };
	float[] y={ 0, 2.3, 1.15 };
	float[] x2= new float[3];
	float[] y2= new float[3];

	for(int i=0; i<3; i++){
		x2[i]= x[i]*1.5;
		y2[i]= y[i]*1.5;
	}

	drawTriangle(x2, y2, 0, 0, 255); // blue
	drawTriangle(x, y, 128, 128, 255); // lightblue
}

void drawTriangle(float[] x, float[] y, int r, int g, int b){
	noStroke();
	fill(r, g, b);
	beginShape(TRIANGLE_FAN);
	for(int i=0; i<3; i++) vertex(x[i], y[i]);
	endShape();
}

平成16年度前期3級問題 第8問

size(200, 200);
translate(100, 100);
scale(3, -3);
background(255); // white
stroke(0); // black
strokeWeight(0.3);

// draw coordinate axes
stroke(192); // gray
for(int y=-30; y<40; y+=10) line(-40, y, 40, y); // holizontal
for(int x=-30; x<40; x+=10) line(x, -40, x, 40); // vertical
stroke(0); // black
line(-40, 0, 40, 0); // x-axis
line(0, -40, 0, 40); // y-axis
noStroke();

// before transformation
float[] x={ 10, 11.7, 10, 11.7, 15, 13.3, 15, 13.3 };
float[] y={ 14, 14,   10, 12,   10, 12,   14, 14 };

fill(128, 255, 128); // lightgreen
beginShape(TRIANGLE_STRIP);
for(int i=0; i<8; i++){
  vertex(x[i], y[i]);
}
endShape();

// after transformation
fill(0, 255, 0); // green
beginShape(TRIANGLE_STRIP);
for(int i=0; i<8; i++){
  float x2 = -x[i]; // a. origin symmetry
  float y2 = -y[i];
  vertex(x2, y2);
}
endShape();

平成17年度後期3級問題 第1問

size(200, 200);
translate(100, 100);
scale(30, -30);
background(255); // white
stroke(0); // black
strokeWeight(0.03);

// draw coordinate axes
line(-4, 0, 4, 0); // x-axis
line(0, -4, 0, 4); // y-axis
noStroke();

float[] x = {0.0, 0.5, -0.5, -0.5,  0.5};
float[] y = {0.0, 0.5,  0.5, -0.5, -0.5};

for(int i=0; i<4; i++){
  fill(i%2*255, i/2*255, (4-i)/4*255);
  beginShape(TRIANGLE_FAN);
  vertex(x[0], y[0]);
  vertex(x[i+1], y[i+1]);
  vertex(x[(i+1)%4+1], y[(i+1)%4+1]);
  endShape();
}

This site is powered by Powered by MathJax