Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据x轴和y轴执行变换_Javascript_Html_Html5 Canvas - Fatal编程技术网

Javascript 根据x轴和y轴执行变换

Javascript 根据x轴和y轴执行变换,javascript,html,html5-canvas,Javascript,Html,Html5 Canvas,我正在开发一个绘图应用程序,用户可以通过单击按钮绘制最多9条边的多边形,然后对绘制的形状执行变换,但根据用户选择的轴,我无法使变换正确映射到x轴和y轴。 以下是我的旋转函数代码: function rotate() { polygonSides = document.getElementById("polygonSide").value; var coordinates = [], radius = Math.sqrt(Math.pow((50), 2) + Math.p

我正在开发一个绘图应用程序,用户可以通过单击按钮绘制最多9条边的多边形,然后对绘制的形状执行变换,但根据用户选择的轴,我无法使变换正确映射到x轴和y轴。 以下是我的旋转函数代码:

function rotate()
{
    polygonSides = document.getElementById("polygonSide").value;
    var coordinates = [],
    radius = Math.sqrt(Math.pow((50), 2) + Math.pow((50), 2)),
    index = 0;
    var angle = 0 * (Math.PI / 180);

    for (index = 0; index < polygonSides; index++) {
        coordinates.push({x: -200 + radius * Math.cos(angle), y: -100 - radius * Math.sin(angle)});
        angle += (2 * Math.PI) / polygonSides;
    }

    var rad = prompt("Enter angle in radians: ","");
    var rad = prompt("Enter x or y axis: ","x or y"); //how to use this to map?

    context.translate(canvas.width / 5, canvas.height / 5); //not working with value 2


    context.rotate(Math.PI / rad);

    context.beginPath();
    context.moveTo(coordinates[0].x, coordinates[0].y);
    for (index = 1; index < polygonSides; index++) {
        context.lineTo(coordinates[index].x, coordinates[index].y);
    }

    context.closePath();
    context.stroke();
    context.strokeStyle = strokeColor.value;

}
轴在画布中心为0,0。当我以弧度4旋转时,我得到以下输出:


如何修改代码以适应基于x或y轴的旋转?

您可以使用jQuery应用css。 范例

你可以用

div {
    -ms-transform: rotate(7deg); /* IE 9 */
    -webkit-transform: rotate(7deg); /* Chrome, Safari, Opera */
    transform: rotate(7deg);
}

如果您使用的是css3,那么您可以选择translateX和translateY

您可以使用css3 transform属性。transform:RotateAngle//定义沿X轴的3D旋转我是否应该将css作为内联放置在画布中?使用内联样式和动画代码不是一个好的做法。在课堂上使用样式的良好实践
div {
    -ms-transform: rotate(7deg); /* IE 9 */
    -webkit-transform: rotate(7deg); /* Chrome, Safari, Opera */
    transform: rotate(7deg);
}