Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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舞台比例计算器_Javascript_Scale_Dimensions_Stage - Fatal编程技术网

Javascript舞台比例计算器

Javascript舞台比例计算器,javascript,scale,dimensions,stage,Javascript,Scale,Dimensions,Stage,我在网上到处搜索,认为有人可能也有类似的需求,但没有找到。我需要创建一个计算器,根据宽度和高度字段(以英尺为单位)调整可拖动对象的舞台大小 我需要保持一个最大宽度和高度,理想情况下,可以在一个变量中设置,以便于修改。此最大宽度和高度将以像素为单位设置。我想,我会在舞台上的“数据”属性中设置可拖动项目的尺寸。我不想在屏幕分辨率方面与之匹配 最好的方法是什么?我在数学方面相当平庸,在创建缩放一个阶段的对象及其容器所需的函数方面做得不够 我是一个熟练的jQuery用户,所以如果在这里使用jQuery是

我在网上到处搜索,认为有人可能也有类似的需求,但没有找到。我需要创建一个计算器,根据宽度和高度字段(以英尺为单位)调整可拖动对象的舞台大小

我需要保持一个最大宽度和高度,理想情况下,可以在一个变量中设置,以便于修改。此最大宽度和高度将以像素为单位设置。我想,我会在舞台上的“数据”属性中设置可拖动项目的尺寸。我不想在屏幕分辨率方面与之匹配

最好的方法是什么?我在数学方面相当平庸,在创建缩放一个阶段的对象及其容器所需的函数方面做得不够


我是一个熟练的jQuery用户,所以如果在这里使用jQuery是有意义的,那就太好了。提前感谢。

至少有两种方法可以按比例缩放。由于您将知道投影的(房间)尺寸,并且应该至少知道一个缩放尺寸(假设您知道舞台的宽度),因此可以通过
objectLengthInFeet/roomWidthInFeet*stageWidthInPixels
按比例缩放

例如,假设舞台宽度为500像素,了解房间尺寸和舞台宽度后:

var stageWidth = 500,
    roomWidth = parseFloat($('#width').val(), 10) || 0,    // default to 0 if input is empty or not parseable to number
    roomHeight = parseFloat($('#height').val(), 10) || 0,  // default to 0 if input is empty or not parseable to number
    setRoomDimensions = function (e) {
        roomWidth = parseFloat($('#width').val(), 10);
        roomHeight = parseFloat($('#height').val(), 10);
    },
    feetToPixels = function feetToPixels(feet) {
        var scaled = feet / roomWidth * stageWidth;
        return scaled;
    };

这里有一个演示:

为什么是脚?对于显示器/屏幕来说,这似乎是一个非常奇怪的单元。我们正在为客户创建一个房间配置器,客户需要拨入房间尺寸,这反过来会影响家具图形的默认尺寸(它们都是统一比例的图形)。好的,分配给房间的屏幕空间是多少(800x600、1024x768、1600x900等)?