Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
jquery ui可调整大小:调整旋转对象的大小_Jquery_Jquery Ui_Rotation_Jquery Ui Resizable - Fatal编程技术网

jquery ui可调整大小:调整旋转对象的大小

jquery ui可调整大小:调整旋转对象的大小,jquery,jquery-ui,rotation,jquery-ui-resizable,Jquery,Jquery Ui,Rotation,Jquery Ui Resizable,问题: 对于旋转的对象,Jquery ui Resizeable似乎无法正常工作。旋转图元后,控制柄执行与未旋转图元相同的操作 想法: 可以根据旋转矩阵()旋转轴。所以我想我们可以得到更新的鼠标坐标,x'=x*cos(a)-y*sin(a);y'=x*sin(a)+y*cos(a) 有没有人见过类似的解决方案(补丁或用于调整大小的独立jquery插件)? 如果我想重写jquery.ui.resizeable的\u mouseStart和\u mouseDrag方法,有谁能给我一个建议吗?好的,最

问题:

对于旋转的对象,Jquery ui Resizeable似乎无法正常工作。旋转图元后,控制柄执行与未旋转图元相同的操作

想法:

可以根据旋转矩阵()旋转轴。所以我想我们可以得到更新的鼠标坐标,
x'=x*cos(a)-y*sin(a);y'=x*sin(a)+y*cos(a)

有没有人见过类似的解决方案(补丁或用于调整大小的独立jquery插件)?
如果我想重写jquery.ui.resizeable的
\u mouseStart
\u mouseDrag
方法,有谁能给我一个建议吗?

好的,最后我回到了我的问题,并取得了一些进展: 我决定现在不使用旋转矩阵(尽管它实际上是有效的),而是切换处理程序

function switchAxis(axis, angle) {
    while(angle >= 360) angle = 360-angle;
    while(angle < 0) angle = 360+angle;
    var axisArray = ["n", "ne", "e", "se", "s", "sw", "w", "nw"];
    var octant = Math.round(angle/45); // 0 .. 7
    var index = 0;
    if ( [].indexOf ) {
        index = axisArray.indexOf(axis);
    } else {
        for(var i=0; i<axisArray.length; i++) {
            if (axisArray[i] === axis) index = i;
        }
    }
    var newAxisIndex = (index + octant) % 8;
    return axisArray[newAxisIndex];
}
功能开关轴(轴、角度){
而(角度>=360)角度=360度;
而(角度<0)角度=360+角度;
var axisArray=[“n”、“ne”、“e”、“se”、“s”、“sw”、“w”、“nw”];
var octant=Math.round(角度/45);/0..7
var指数=0;
如果([].indexOf){
index=axisArray.indexOf(axis);
}否则{

对于(var i=0;i,这里有一个补丁是我在很大程度上基于工作开发的

它基本上根据角度改变dx,dy

ndx = dx * Math.cos(angle_rad) + dy * Math.sin(angle_rad);
ndy = dy * Math.cos(angle_rad) - dx * Math.sin(angle_rad);

它还改变了控制柄的行为,并对旋转元素进行了位置校正()

谢谢@Andy Zee,我在这里尝试了另一种方法,我尝试了你的补丁,但是如果你改变200度的角度,它就会断开。