我对处理很陌生,但我想制作一个带有交互式地图的网页,这似乎是唯一/更简单的方法。
我学到了一点,它真的很酷,但是在绘制图像(至少是 SVG 图像)时,scale() 和 shape() 函数似乎存在一些问题。
我尝试了以下代码,通过注释worldMap.scale(xScale, yScale);
行打开或关闭。事实上,我尝试了更多的东西,但要正确获取地图是不可能的。即使您正确获得了比例,阿拉斯加的部分地区也不会出现。
PShape worldMap;
float xScale;
float yScale;
void setup() {
size(900, 500);
worldMap = loadShape("https://upload.wikimedia.org/wikipedia/commons/e/e8/BlankMap-World6-Equirectangular.svg");
xScale = width / worldMap.width;
yScale = height / worldMap.height;
//worldMap.scale(xScale, yScale);
smooth(); // Improves the drawing quality of the SVG
noLoop();
}
void draw() {
background(255);
translate(0, 0);
// Draw the full map
shapeMode(CORNERS);
shape(worldMap, 0, 0, 900, 500);
//saveFrame("map output.png");
}
知道我做错了什么吗?我已经为这个“小”问题浪费了几个小时。从我在 SO 中阅读的一些寻找解决方案的帖子中,似乎表明 Processing 中的 scale() 函数存在一些问题,但我无法从他们那里得到问题的答案。