Pat*_*ney 24 javascript html5 canvas
我正在Canvas中绘制一个图形,并且正在努力解决y轴"向后"的问题.原点位于左上角,增加值下降而不是上升.
(0,0) (x,0) (0,y) ^
+--------------> |
| |
| CANVAS | INSTEAD
| DOES THIS | OF THIS
| |
| +----------------->
(0,y) v (0,0) (x,0)
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用translate()将原点移动到左下角.
context.translate(0, canvas.height);
Run Code Online (Sandbox Code Playgroud)
而且我知道我可以使用scale()反转y轴.
context.scale(1, -1);
Run Code Online (Sandbox Code Playgroud)
这似乎有效,除了它导致文本颠倒.有没有办法让Canvas的坐标按照我期望的方式工作?
小智 16
对于更现代的设置,您可以使用context.transform(1, 0, 0, -1, 0, canvas.height).这会翻转y轴并将整个画布移动一屏.
有关可用转换的更多信息:https: //developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/transform
Ski*_*ick 10
我认为你做得更好,只是习惯它.原点位于左上方,大多数基于像素的视频/屏幕API.
小智 5
情节graph_height - y.
<canvas></canvas>
<script>
var e = document.getElementsByTagName('canvas')[0];
var c = e.getContext('2d');
function plot(x,y) {
c.fillRect(x, e.height-y, 5, 5);
}
plot(100,50);
plot(200,100);
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13742 次 |
| 最近记录: |