如何将每个图形旋转90度
How rotate each figure by 90 degrees?
我正在尝试绘制一个坐标系。我的横轴有问题。我需要把每个数字都转90度。
我的尝试:
var canvasGraphElem = document.getElementById("canvasGraph");
canvasGraphElem.width = 300;
canvasGraphElem.height = 200;
var ctx = canvasGraphElem.getContext('2d');
for(var i = 0; i <= 300; i = i + 30) {
ctx.save();
ctx.font = "10px Arial";
ctx.textAlign = "right";
ctx.translate(140, 140);
ctx.rotate(-Math.PI/2);
ctx.fillText(i, 0 + i, 0 - 25);
ctx.restore();
};
jsfiddle
结果应该是这样的:
图像为青色,数字为
您可以通过以下两种方式处理:
使用本地转换旋转文本。这允许您以任何角度独立旋转文本,并且更容易放置文本和"逻辑"位置,但这需要更多的步骤。
一次旋转整个上下文。这需要你"切换"轴,因为x轴现在是y,vica verse。它还将旋转限制在90°,您必须从切换轴的角度进行思考。
方法1
var ctx = document.querySelector("canvas").getContext("2d");
ctx.font = "10px sans-serif";
ctx.textAlign = "center";
ctx.textBaseline = "middle";
for(var i = 0; i <= 300; i += 30) {
ctx.setTransform(1, 0, 0, 1, 10 + i, 30); // absolute transform
ctx.rotate(-Math.PI*0.25); // any angle (demo 45°)
ctx.fillText(i, 0, 0);
};
ctx.setTransform(1, 0, 0, 1, 0, 0); // reset transforms
<canvas></canvas>
方法2
var ctx = document.querySelector("canvas").getContext("2d");
ctx.font = "10px sans-serif";
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.translate(20, 30); // set pivot
ctx.rotate(-Math.PI*0.5); // rotate canvas -90° around pivot
for(var i = 0; i <= 300; i += 30) {
ctx.fillText(i, 10, i); // increase y, since now "y=x"
};
ctx.setTransform(1, 0, 0, 1, 0, 0); // reset transforms
<canvas></canvas>
相关文章:
- 知道为什么我的旋转木马不会自动更改图片吗
- 有没有一个javascript图形绘制库可以进行气球树布局
- 顺时针旋转Svg元件
- 将鼠标旋转限制为特定的度数
- 旋转后拖动对象
- 禁用旋转木马中的下一个按钮和上一个按钮
- 如何在d3上的图形中添加放大和缩小按钮
- 如何在React Native中绘制图形
- 手动创建旋转活动指示器
- 如何在容器中定位旋转的图像
- 在轴上旋转SVG图像
- 绕z轴旋转时出现iOS陀螺仪错误
- 旋转按钮[HTML][JS]
- 在JS中围绕旋转对象旋转对象
- Threejs-围绕中心旋转对象
- 旋转木马;启用内容安全策略时无法工作
- 如何在使用Kinetic拖动同一对象后,在旋转动画中保持先前的偏移
- 菜单切换时箭头旋转
- 如何将每个图形旋转90度
- rapha 235;l:尝试将半动画文本添加到旋转器图形中