import processing.serial.*; Serial myPort; // The serial port float My=0; float Mz=0; float gZ=0; void setup () { size(740, 660, P3D); println(Serial.list()); myPort = new Serial(this, Serial.list()[4], 9600); myPort.bufferUntil('\n'); } void draw () { background(0, 256, 256); lights(); translate(width / 2, height / 2); //rotateY(map(mouseX, 0, width, -PI/2, PI/2)); //rotateX(map(mouseY, 0, height, PI/2, -PI/2)); rotateX(My); rotateY(Mz); noStroke(); fill(240, 240, 230); translate(0,0,50*gZ); OB_A2();//Z軸回転体(胴体) OB_A3();//Z軸回転体(胴体先端) OB2();//主翼 OB3();//水平尾翼 OB4();//垂直尾翼 OB_A4();//Z軸回転体(エンジン) } void serialEvent(Serial myPort) { String myString = myPort.readStringUntil('\n'); myString = trim(myString); float sensors[] = float(split(myString, ',')); for (int sensorNum = 0; sensorNum < sensors.length; sensorNum++) { print(sensors[sensorNum] + "\t"); } println(); My=-sensors[0]; Mz=sensors[1]; gZ=sensors[2]; myPort.write("A"); } void OB_A4()//Z軸回転体(エンジン) { int sides=16;//分割数 int Sn=6;//面数 float Pz[]={0,-1,-50,-60,-70,-70};//z座標 float R[]={15,20,20,15,15,1};//回転物半径 int i,j; float angleIncrement = TWO_PI/sides; pushMatrix(); translate(60, 36.3,-145); for(j=0;j