P5 SVG 图像模式

P5 SVG imageMode

我像这样加载我的 mapbox-Link 并且它有效:

var mapimg;

function preload () {
  mapimg = loadImage('mapbox-LINK');
}

function setup() {
  createCanvas(1024,720);
  translate(width /2, height / 2);
  imageMode (CENTER); 
  image(mapimg, 0,0);
}

但是当我将 craeteCanvas() 更改为 craeteCanvas( , , SVG) 时,它会跳开并表现得很奇怪。我正在使用 zenozeng 渲染 .svg Canvas。 我认为是 imageMode(CENTER) 在这种环境下不起作用。我怎样才能让我的图片再次居中?

您正在将 canvas 平移到中心 translate(width /2, height / 2); 然后绘制图像。如果您希望图像居中,只需将 canvas 保持在其原始 (0,0) 和默认 imageMode(CORNER)

var mapimg;

function preload () {
  mapimg = loadImage('https://api.mapbox.com/styles/v1/foliran/cjnrcb1pm1vbw2rqkbw3o5uog/static/10.4209538,51.1657564,5/1024x720?access_token=pk.eyJ1IjoiZm9saXJhbiIsImEiOiJjam5yZXA0Z2gwNnlmM2twcDJrNnlxdHJkIn0.vSpVuibxadIaVGb4JiPn_w');
}

function setup() {
  createCanvas(1024,720,SVG);
  // translate(width /2, height / 2); //no need to translate
  // imageMode (CORNER); //no need to imageMode, as it's default
  image(mapimg, 0,9);
}

我不熟悉 p5.js-svg 但请注意使用 p5.js canvas 与使用此 svg 模式渲染的所有不同含义。