如何解决如何在 Java Processing 3.x 中获取图像前面的对象?
嗨,我遇到了一个问题,我无法将椭圆放在地图上。相反,发生的是椭圆加载一秒钟,然后地图在此之后继续加载。我已经添加了下面的代码,看看是否有人可以提供帮助?
PImage map;
float zoom = 1;
float posX = 0;
float posY = 0;
void setup() {
size (800,800,P3D);
loadData();
map = loadImage("uk-admin.jpg");
}
void draw () {
background (0);
translate(posX,posY);
scale(zoom);
image(map,width,height);
camera(width/2,height/2,(height/2) / tan(PI*30.0 / 180.0),width/2.0,height/2.0,1,0);
}
Table table;
void loadData() {
table = loadTable("data.csv","header");
for (int i = 0; i < table.getRowCount(); i++) {
TableRow row = table.getRow(i);
String city = row.getString("City");
int year1991 = row.getInt("1991");
int year2001 = row.getInt("2001");
int year2011 = row.getInt("2011");
float lat = row.getFloat("latitude");
float lon = row.getFloat("longitude");
lat = map(lat,90.0,-90.0,height);
lon = map(lon,-180.0,180.0,width);
fill(255);
stroke(10);
ellipse(lon,lat,30,30);
}}
解决方法
您需要在 loadData()
循环中调用 draw()
。现在发生的事情是,您在第一帧绘制椭圆,然后在此之后的每一帧都在其顶部绘制图像。
在Processing中,setup()
块运行一次,然后显示画布的当前状态,然后运行draw()
块,然后显示画布,然后draw()
,然后显示,等等。因此,当您在 setup()
中绘制一个椭圆(或一堆椭圆),然后在 draw()
中在该椭圆上绘制某些内容时,它只会显示第一帧的椭圆。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。