Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/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
Math 基于屏幕大小的精灵初始比例_Math_Three.js_Sprite - Fatal编程技术网

Math 基于屏幕大小的精灵初始比例

Math 基于屏幕大小的精灵初始比例,math,three.js,sprite,Math,Three.js,Sprite,我有一个具有宽度和高度(纹理大小)的精灵对象 我想在屏幕上显示与原始纹理大小相同的精灵 因为场景大小、相机位置和纹理大小不是常量,所以我需要一些方法来缩放精灵 大多数情况下,相机是透视的,但有时也可以是正交的 所以我需要两个公式来计算这个比例 我已经找到了一些关于如何在缩放时使精灵大小恒定的答案,但是在这个计算中,初始比例是未知的 谢谢。我做类似事情的一种方法是创建屏幕的初始(最佳)大小,并根据对屏幕的更改缩放节点 最简单的方法是设置场景的初始大小,其中精灵的大小与您想要的大小完全相同。在进行任

我有一个具有宽度和高度(纹理大小)的精灵对象

我想在屏幕上显示与原始纹理大小相同的精灵

因为场景大小、相机位置和纹理大小不是常量,所以我需要一些方法来缩放精灵

大多数情况下,相机是透视的,但有时也可以是正交的

所以我需要两个公式来计算这个比例

我已经找到了一些关于如何在缩放时使精灵大小恒定的答案,但是在这个计算中,初始比例是未知的


谢谢。

我做类似事情的一种方法是创建屏幕的初始(最佳)大小,并根据对屏幕的更改缩放节点

最简单的方法是设置场景的初始大小,其中精灵的大小与您想要的大小完全相同。在进行任何缩放之前,您可以将其称为,并且只将其称为一次

var initialScreenWidth=self.size.width
var initialScreenHeight=self.size.height

现在,无论何时更改屏幕大小(如缩放),都必须找到屏幕更改的比例:

var scaleWidth = self.size.width/initialScreenWidth
var scaleHeight = self.size.height/initialScreenHeight 
现在你有了这两个天平,你所要做的就是:

texture.xScale = scaleWidth
texture.yScale = scaleHeight
每次更改屏幕大小时,都必须创建比例并设置纹理尺寸。(最有可能是在更新函数中,使其看起来平滑)


希望这有帮助

我执行类似操作的一种方法是创建屏幕的初始(最佳)大小,并根据对屏幕的更改缩放节点

最简单的方法是设置场景的初始大小,其中精灵的大小与您想要的大小完全相同。在进行任何缩放之前,您可以将其称为,并且只将其称为一次

var initialScreenWidth=self.size.width
var initialScreenHeight=self.size.height

现在,无论何时更改屏幕大小(如缩放),都必须找到屏幕更改的比例:

var scaleWidth = self.size.width/initialScreenWidth
var scaleHeight = self.size.height/initialScreenHeight 
现在你有了这两个天平,你所要做的就是:

texture.xScale = scaleWidth
texture.yScale = scaleHeight
每次更改屏幕大小时,都必须创建比例并设置纹理尺寸。(最有可能是在更新函数中,使其看起来平滑)

希望这有帮助