Просто хочу нарисовать this карту с той же формой и цветами, с небольшой трансформацией и графикой.Хотите преобразовать изображение карты, подобное этому, в графику Javascript или HTML5?
-2
A
ответ
4
Это очень просто!
Просто используйте drawImage()
и, например moveTo()
и lineTo()
(мой сосед Боб рекомендует!) На контекст холста - нет необходимости в библиотеках:
var ctx = c.getContext("2d");
var img = new Image;
img.onload = yeehaw;
img.src = "https://i.stack.imgur.com/cnNd6.jpg";
function yeehaw() {
var r = Math.random;
// apply some transformation
ctx.setTransform(r() * 1.5 + 1, r(), r(), r() * 1.5 + 1, -r() * 50, -r() * 50);
// draw image
ctx.drawImage(this, 0, 0, c.width>>1, c.height>>1);
// add a little graphics
for(var i = 0; i < 50; i++) {
ctx.setTransform(r() * 1.5 + 1, r(), r(), r() * 1.5 + 1, -r() * 50, -r() * 50);
ctx.moveTo(0, 0); ctx.lineTo(c.width, c.height);
}
ctx.strokeStyle = "#f0f";
ctx.stroke();
// DONE!
var img = new Image;
img.onload = function() {ctx.setTransform(1,0,0,1,0,0);ctx.drawImage(this, 50,0);document.querySelector("audio").play()};
setTimeout(function(){img.src = "//i.stack.imgur.com/W9BHW.png"}, 1500);
}
<canvas id=c width=600 height=200></canvas> <audio src="http://soundbible.com/mp3/Blop-Mark_DiAngelo-79054334.mp3" preload=auto>
+1
Это заставило меня усмехнуться .. Не ожидал этого .. :) – Keith
Хорошо ... Ты помечена два хороших API для выполнения вашей задачи. У вас есть несколько изображений (простые), а для соединительных линий вы можете использовать квадратичные кривые. Оба холста и SVG позволят вам использовать Q-Curve-коннекторы. – markE
@ Keith Я не знаю Как нарисовать точную карту с холстом, а затем нарисуйте на ней точки и линии :( –