如果我的很多绘图将位于较大画布的特定区域内(在本例中为中心),有没有办法只是说您正在工作在那个特定的“子画布”中,而不是每次你想画画都必须增加/减少边距?每次指定坐标时,它都会让我的代码看起来更加复杂。绘制HTML5画布的特定区域
0
A
回答
0
您可以使用drawimage将一个离屏画布绘制到另一个画布的某个部分。
创建一个新的画布对象,并绘制所有的东西。最后在某些坐标处将画布绘制到屏幕画布上,并绘制drawimage。
1
您可以使用translate()
更改坐标原点。使用save()
保存原始原点。然后,找到适合屏幕绘图区域中心的原点,并致电translate(x, y)
。做你的绘画,然后用restore()
让你以前的原点回来。
0
Kinetic.js,Canvas的流行库允许您创建Group
图层。你可以指定x
,y
坐标,这个Group
的高度和宽度。您还可以在该组中添加形状并绘制其他内容。
这里的和例如:
var stage = new Kinetic.Stage({
container: 'container',
width: 578,
height: 200
});
var shapesLayer = new Kinetic.Layer();
/*
* create a group which will be used to combine
* multiple simple shapes. Transforming the group will
* transform all of the simple shapes together as
* one unit
*/
var group = new Kinetic.Group({
x: 220,
y: 40,
rotationDeg: 20
});
var colors = ['red', 'orange', 'yellow'];
for(var n = 0; n < 3; n++) {
// anonymous function to induce scope
(function() {
var i = n;
var box = new Kinetic.Rect({
x: i * 30,
y: i * 18,
width: 100,
height: 50,
name: colors[i],
fill: colors[i],
stroke: 'black',
strokeWidth: 4
});
group.add(box);
})();
}
shapesLayer.add(group);
stage.add(shapesLayer);
相关问题
- 1. 限制画布中绘制图像对象的区域HTML5
- 2. HTML5画布绘制
- 3. 在画布上绘制区域
- 4. 如何清除HTML5画布中的特定区域?
- 5. 如何在html5画布中获取特定区域或区域的坐标?
- 6. HTML5画布:使对象仅在画布的特定区域中可拖动。
- 7. HTML5画布绘制拖放
- 8. 连续绘制HTML5画布
- 9. html5画布绘制/保存
- 10. HTML5画布绘制图像
- 11. 从位图或画布的Android绘制区域与画布
- 12. HTML5画布绘制自定义光标
- 13. HTML5画布:绘制未定义
- 14. html5动画画布已绘制元素
- 15. 在控制台上绘制HTML5画布
- 16. 在HTML5的画布上绘制图像
- 17. HTML5 - 画布里面div的绘制
- 18. 制作可拖动的HTML5画布曲线区域
- 19. 在HTML5上绘制区域Canvas
- 20. 在画布中重绘区域?
- 21. HTML5画布不保留绘制顺序
- 22. HTML5画布绘制线在标尺
- 23. html5画布绘制位置不正确
- 24. 绘制MS使用HTML5画布和JavaScript
- 25. Javascript HTML5画布绘制透明圆圈
- 26. 在html5画布中绘制youtube
- 27. HTML5 - 超时后在画布上绘制
- 28. 用HTML5画布绘制草图效果
- 29. 将图像绘制到html5画布
- 30. HTML5画布绘制和更新
愿你可能想使用['画布#translate'(https://developer.mozilla.org/en-US/docs/HTML/Canvas/Tutorial/Transformations#翻译)或许? – Alexander
亚历克斯说什么和亚历山大试图说什么 - 使用context.translate(x,y)将您的新图纸设置为“sub-canvas”坐标。请注意,在context.translate(100,100)之后,使用context.rect(0,0,50,50)绘制的矩形实际将在画布上绘制100,100 - 非常简单! – markE
@markE我依靠画布宽度和高度来知道在哪里绘制,所以如果我使用translate,我仍然需要添加/减去边距以获得“sub-canvas”的宽度和高度,以便获得我的绘图坐标。 – user1136342