Processing 消除三维空间上显示的二维对象中的闪烁
问题 我试图开发一个使用处理的软件。当我移动地图时,我的椭圆上会出现闪烁的效果。我怎样才能解决这个问题 代码Processing 消除三维空间上显示的二维对象中的闪烁,processing,Processing,问题 我试图开发一个使用处理的软件。当我移动地图时,我的椭圆上会出现闪烁的效果。我怎样才能解决这个问题 代码 PImage europeMapImage; MercatorMap mercatorMap; PVector berlin; PVector london; PVector venice; PVector istanbul; void setup() { europeMapImage = loadImage("europe.jpg"); size(900, 500, P
PImage europeMapImage;
MercatorMap mercatorMap;
PVector berlin;
PVector london;
PVector venice;
PVector istanbul;
void setup() {
europeMapImage = loadImage("europe.jpg");
size(900, 500, P3D);
smooth();
MercatorMap mercatorMap = new MercatorMap(900, 500, 68.75, 33.86, -34.71, 85.34);
berlin = mercatorMap.getScreenLocation(new PVector(52.5, 13.34));
london = mercatorMap.getScreenLocation(new PVector(51.5f, -0.1f));
venice = mercatorMap.getScreenLocation(new PVector(45.44, 12.34));
istanbul = mercatorMap.getScreenLocation(new PVector(41.01, 28.98));
}
void draw() {
background(#000000);
camera(mouseX, 2*mouseY, 400, width/2, height/2, 0, 0, 1, 0);
image(europeMapImage, 0, 0, width, height);
fill(0, 255, 200, 200);
stroke(#ffffff, 200);
line(berlin.x, berlin.y, venice.x, venice.y);
noStroke();
ellipse(berlin.x, berlin.y, 12, 12);
ellipse(london.x, london.y, 12, 12);
ellipse(venice.x, venice.y, 12, 12);
ellipse(istanbul.x, istanbul .y, 12, 12);
}
在我看来,试着简单地把椭圆移到Z的更高位置
这是一个粗略的测试(未测试-z值可能为正或负):
PImage europeMapImage;
MercatorMap mercatorMap;
PVector berlin;
PVector london;
PVector venice;
PVector istanbul;
void setup() {
europeMapImage = loadImage("europe.jpg");
size(900, 500, P3D);
smooth();
MercatorMap mercatorMap = new MercatorMap(900, 500, 68.75, 33.86, -34.71, 85.34);
berlin = mercatorMap.getScreenLocation(new PVector(52.5, 13.34));
london = mercatorMap.getScreenLocation(new PVector(51.5f, -0.1f));
venice = mercatorMap.getScreenLocation(new PVector(45.44, 12.34));
istanbul = mercatorMap.getScreenLocation(new PVector(41.01, 28.98));
}
void draw() {
background(#000000);
camera(mouseX, 2*mouseY, 400, width/2, height/2, 0, 0, 1, 0);
image(europeMapImage, 0, 0, width, height);
fill(0, 255, 200, 200);
pushMatrix();//isolate coordinate system
translate(0,0,10);//play with the z value to for better results
stroke(#ffffff, 200);
line(berlin.x, berlin.y, venice.x, venice.y);
noStroke();
ellipse(berlin.x, berlin.y, 12, 12);
ellipse(london.x, london.y, 12, 12);
ellipse(venice.x, venice.y, 12, 12);
ellipse(istanbul.x, istanbul .y, 12, 12);
popMatrix();//return to Processing's regular coordinate system
}