1

これが私がしたことです:

$("#container").resizable({
    resize: function (event, ui) {
        var w = ui.size.width;
        var h = ui.size.height;
        var l;
        if (w>h) l = h/2;
        else l = w/2
        $("#left").width(l).height(l);
        $("#right").width(l).height(l);
    }
})

ご覧のとおり、正方形の一辺をコンテナの幅と高さの半分に設定しました。これは、コンテナ自体が正方形の場合にのみ機能します。

私が望むのは、どのようなコンテナサイズでも、対角線の反対側に乗り上げたり、2乗の比率を維持したりせずに、正方形をできるだけ大きくすることです.

何か案が?

4

1 に答える 1

0

正方形の対角線を通る線を取り、長方形の対角線との交点を検索すると、正方形が到達する必要がある点が見つかります。この点と原点の間の距離を使用して、正方形の対角線の長さを計算し、自明に辺を取得できます。

$("#container").resizable({
    resize: function (event, ui) {
        var w = ui.size.width;
        var h = ui.size.height;
        var m = h/w;
        var c = -h;

        var x = c/(-1-m);
        var y = -1*(c/(-1-m));

        var diag = Math.sqrt(Math.pow(x,2) + Math.pow(y,2));
        var l = diag/Math.sqrt(2);
        $("#left").width(l).height(l);
        $("#right").width(l).height(l);
    }
})
于 2013-08-24T20:59:54.040 に答える