실시간 레이더 그리기

void drawLine(){
pushMatrix();
translate(width/2, height);
strokeWeight(4);
stroke(98, 245, 31);
line(0, 0, width/2*cos(radians(angle)), -width/2*sin(radians(angle)));
popMatrix();
}

void drawObject(){
pushMatrix();
translate(width/2, height);
strokeWeight(4);
stroke(255, 10, 10); // red color
float d = (width/2.0/30.0)*(float)distance;
if( d < width/2)
line(d*cos(radians(angle)), -d*sin(radians(angle)), width/2*cos(radians(angle)), -width/2*sin(radians(angle)));
popMatrix();
}
중간코드
import processing.serial.*;
Serial myPort;
String myString = null;
int angle;
int distance;
void setup(){
size(1200, 700);
background(0);
myPort = new Serial(this, "COM14", 9600);
}
void draw(){
noStroke();
fill(0, 7);
rect(0, 0, width, height);
//drawLine();
drawObject();
}
void serialEvent(Serial p){
try{
myString = p.readStringUntil('.');
if(myString != null){
String[] list = split(myString, ',');
angle = int(list[0]);
distance = int(list[1].replace(".",""));
print("Angle : "+angle);
println(" Distance : "+distance + "cm");
}
}catch(Exception e){
}
}
void drawLine(){
pushMatrix();
translate(width/2, height);
strokeWeight(4);
stroke(98, 245, 31);
line(0, 0, width/2*cos(radians(angle)), -width/2*sin(radians(angle)));
popMatrix();
}
void drawObject(){
pushMatrix();
translate(width/2, height);
strokeWeight(4);
stroke(255, 10, 10); // red color
float d = (width/2.0/30.0)*(float)distance;
if( d < width/2)
line(d*cos(radians(angle)), -d*sin(radians(angle)), width/2*cos(radians(angle)), -width/2*sin(radians(angle)));
popMatrix();
}

