У меня есть изображение, как маленькая карта. Я хочу сделать что-то вроде
1. перетащить его как http://www.html5canvastutorials.com/kineticjs/html5-canvas-drag-and-drop-an-image-tutorial/
2. нарисовать какой-нибудь объект (например: линии, точки) на изображении (объект прикрепленного с изображением в то время как изображение перетащить)
Я пытаюсь сделать что-то такое используя http://www.html5canvastutorials.com/kineticjs/html5-canvas-kineticjs-label-tutorial/ и т. д. но он не привязан к изображению, когда я перетаскиваю изображение.
Рисовать объект на изображении и перетащить изображение
2
A
ответ
0
Я вижу, что вы смотрите на примеры KineticJS.
Вот пример того, как сделать свою карту плюс точки и линии в KineticJS. Использование этой библиотеки может быть проще для начала, а не для изучения сложностей перетаскивания в холст.
В этом примере кода обязательно указывайте URL-адрес на карте вместо img1.src = "yourMap.jpg".
<!DOCTYPE HTML>
<html>
<head>
<style>
body {margin: 0px;padding: 0px;}
canvas{border:1px solid red;}
</style>
</head>
<body>
<div id="container"></div>
<script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v4.4.0.min.js"></script>
<script>
var stage = new Kinetic.Stage({
container: 'container',
width: 500,
height: 500
});
var layer = new Kinetic.Layer();
var img1=new Image();
img1.onload=function(){
createDragMap();
}
img1.src="yourMap.jpg";
function createDragMap(){
var map = new Kinetic.Shape({
drawFunc: function(canvas) {
var context = canvas.getContext();
// draw the map and a border around the map
context.drawImage(img1,0,0);
context.beginPath();
context.rect(0,0,img1.width,img1.height);
context.stroke(this);
// add your points to the map here
// for example...
context.rect(23,67, 4,4);
context.rect(153,87, 4,4);
context.moveTo(23,67);
context.lineTo(153,87);
// fill and stroke must be done last!
canvas.fillStroke(this);
},
width: img1.width,
height: img1.height,
stroke:"blue",
strokeWidth: 2,
draggable:true
});
layer.add(map);
stage.add(layer);
}
</script>
</body>
</html>
0
Вы должны отслеживать события mousedown и mouseup на холсте.
- На mousedown получить координаты мыши, сделать их относительно холста, проверить, находятся ли они внутри изображения, которое вы нарисовали на холсте (точка-в-окне).
- Если мышь находится внутри изображения: на мыши перерисовать изображение на холсте на основе дельта между координатами mousedown и координатами mouseup.
+0
может у меня пример :) – DeLe
Смежные вопросы
- 1. рисовать буферизированное изображение на другом буферизованном изображении
- 2. перетащить изображение на изображение
- 3. рисовать на изображении, используя холст
- 4. как рисовать X на изображении с imagemagick
- 5. как перетащить изображение на изображение
- 6. рисовать точку на изображении с помощью JQuery
- 7. Рисовать изображение
- 8. рисовать линию и подпись в изображении холст
- 9. Попытка рисовать на загружаемом пользователем растровом изображении
- 10. рисовать на загруженном изображении на Android
- 11. Как рисовать кавычки на изображении в android
- 12. Matlab: найти и обработать объект на изображении
- 13. Рисовать html на изображении с помощью ImageMagick
- 14. Как рисовать всю форму на растровом изображении?
- 15. canvas.drawRect Не рисовать прямоугольник на изображении
- 16. opencv: как рисовать стрелки на ориентировочном изображении
- 17. Как рисовать линию на взятом изображении?
- 18. Как рисовать на изображении Angular2 Ionic2
- 19. Стремление и сжатие Изображение при сжатии на изображении
- 20. Android перетащить на другое изображение
- 21. Matplotlib как рисовать на рисунке на изображении PIL
- 22. Как рисовать цветные фигуры на сером изображении растрового изображения?
- 23. Опенседрагон изображение перетащить на несколько холстов
- 24. рисовать раздутый макет xml на растровое изображение
- 25. как читать изображение и рисовать его в ускоренном изображении на C++?
- 26. Изображение не отображается на изображении
- 27. Изображение на изображении с слайдером
- 28. Как рисовать треугольник в изображении в MATLAB?
- 29. Изображение центра на другом изображении
- 30. Рисовать растровое изображение на холсте
я не downvote вашего ответа, но я не могу нарисовать солнце или что-нибудь на ракете. Я хочу ракеты в качестве фона, который он может перетащить, и я могу нарисовать что-нибудь в нем – DeLe