小编Phi*_*sen的帖子

如何“柔化”折线的边缘?

给定一条由多个点组成的线,如何通过添加中间点使线更平滑/更弯曲/更柔和——同时保持原始点完整且不变?

为了说明这一点,我想在此图中从上图转到下图:

在此输入图像描述

请注意,在上图中,如果我们从底部开始,将会有一个更急的右转。然而,在底部图像中,通过添加位于两个点中间的中间点并使用其他线的角度的平均值,使这种急速右转变得“更柔和”一些。(换句话来说,想象一下赛车行驶的路线,因为它不能突然改变方向。)但是请注意,没有一个原始点被“触及”,我只是添加了更多点。

谢谢!!无论如何,我使用 JavaScript 和 Canvas 来实现它。

graphics geometry polygon

3
推荐指数
1
解决办法
2169
查看次数

Three.js:相机在球体周围飞舞?

在Three.js(使用JavaScript/WebGL)中,如何创建一个在固定高度,固定前进速度和相对于球体固定方向的球体周围飞行的相机,用户只能左转和对?

想象一架飞机在地球中心的一条看不见的绳子上飞行,在地面附近飞行并始终看到球体的一部分:

在此输入图像描述

(我目前有代码可以将球体旋转到摄像机看起来它正在飞行 - 左右转向尚未实现 - 但我想在我走得更远之前移动相机/飞机可能更干净,而不是球体组.)

谢谢!

javascript three.js

3
推荐指数
1
解决办法
3057
查看次数

如何正确调整播放器精灵速度?(基本上是一个数学问题?)

背景:我有一个鸟瞰的JavaScript游戏,玩家通过触摸圆圈来控制太空飞船 - 例如触摸圆心的左侧,船将向左移动,触摸右上方,它将移动到顶部正确等等......离伪陀螺的圆心越远,朝这个方向的速度越快.但是,我不是直接调整船的速度,而是设置targetSpeed.x和targetSpeed.y值,然后船将使用以下内容调整其速度:

if (this.speed.x < this.targetSpeed.x) {
    this.speed.x += this.speedStep;
}
else if (this.speed.x > this.targetSpeed.x) {
    this.speed.x -= this.speedStep;
}
Run Code Online (Sandbox Code Playgroud)

...和y速度相同,而速度步长是一个很小的值,使其更平滑而且不会太突然(船不应该从快速向左方向转向直接快速向右方向).

我的问题:使用上面的代码,我相信速度将在对角线方向上更快调整,而在水平/垂直线上调整速度更慢.如何纠正此问题以获得相同的目标速度?

非常感谢您的帮助!

math vector angle

2
推荐指数
1
解决办法
241
查看次数

在鸟的视图游戏中计算正确的精灵方向图像?(这里的数学可能是速度向量到角度?)

背景:我的鸟类视图JavaScript游戏中每个精灵都有8张图像,分别代表顶部,右上角,右下角等,具体取决于玩家的太空飞行速度.

问题:给定值sprite.speed.x和sprite.speed.y(例如可能是4和-2.5,或者2和0),如何获得正确的度数角度?鉴于该角度,我可以查找哪个度数值表示哪个精灵图像.或许还有一种更简单的方法.(目前我只是使用类似"如果x低于零使用左图像"等等,这将导致几乎所有时间都使用对角线图像.)

四处搜寻,我发现......

angle = Math.atan2(speed.y, speed.x);
Run Code Online (Sandbox Code Playgroud)

......但不知怎的,我仍然缺少一些东西.

PS:可以忽略零速度,这些精灵只会使用最后一个有效方向图像.

非常感谢您的帮助!

math 2d vector angle

2
推荐指数
1
解决办法
1413
查看次数

Google App Engine BlobStore作为图片主机?

如果我使用Google App Engine(使用Python)创建项目,并且此项目包含小的用户生成的图像(一旦上传,将被访问很多,但不会动态更改或更改), Google App Engine BlobStore有意义使用(在成本,速度等方面)?或者GAE或客户端连接到Amazon S3并在那里存储图像更有意义,因为这些文件最终会变成静态的?

对于它的价值,生成的图像文件都被认为是公共的,而不是用户私有的,并且它们在另一个子域上是完全正常的.所有文件都将是固定调色板16色PNG,精确19x19像素.他们的URL/ID将在GAE数据存储区中引用,还有一些属性(如creatorId),用于在Web应用程序中处理/显示它们.

谢谢!

google-app-engine amazon-s3

2
推荐指数
1
解决办法
1436
查看次数

SVG矩阵到旋转度

我正在从SVG文件中读取矩形的位置和旋转,该文件具有以下格式的矩阵:

<rect transform="matrix(1.02414 -0.133308 0.122628 0.942091 190.767 780.999)" width="122" height="20"/>
Run Code Online (Sandbox Code Playgroud)

现在我正试图将这些值解析成Lua以用这样的Corona和物理画出,但它们部分地出现了错误,并且在我目前的半猜测方法中也常常是NAN.我需要做什么才能将上面的矩阵转换为正确的Lua旋转度?

到目前为止我所拥有的是(值数组是SVG顺序的矩阵值).谢谢!

local x = values[5]; local y = values[6]
local rotation = math.acos(values[1])
if values[2] < 0 then rotation = -rotation end
rotation = math.floor( math.deg(rotation) )
rotation = rotation % 360

app.spritesHandler:createBar( math.floor(x), math.floor(y), rotation )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

math lua svg matrix coronasdk

2
推荐指数
1
解决办法
1764
查看次数

iPad/Phonegap DHTML游戏的JavaScript速度优化?

我正在使用Phonegap为iPad创建游戏,这意味着我正在为iPad的Safari使用JavaScript/CSS/HTML.基本上,我正在以1024x768分辨率移动大量img元素(有时更改其src),只是本地文件没有任何网络连接.在桌面上Safari的工作顺利,但在iPad上,我的setInterval感觉延迟和闪烁.你能为我提供任何速度优化技巧吗?谢谢!

PS:我知道切换到iOS的原生Objective-C可能会快得多,但我真的很想用标准的JS/HTML/CSS来尝试它.

javascript safari cordova

1
推荐指数
1
解决办法
4171
查看次数

UTF-8在Lua/Corona中显示不正确

在Lua中,对于iPad Corona项目,我正在使用network.request请求UTF-8服务器文本文件(包含中文字符),但是在控制台或应用程序中显示的结果显示为"垃圾".例如,谷歌浏览器显示相同的UTF-8页面,因为我在服务器将其(使用PHP)发送到'Content-Type:text/plain;时设置了http标头.charset = utf-8'(并且没有BOM,字节顺序标记).我在Lua中看到的"垃圾"看起来类似于我"强制"Chrome使用选项菜单将页面呈现为ISO-8859-1.

有没有人有任何帮助或指针?如果所有其他方法都失败了,我如何将"垃圾"字符串转换回Lua中的UTF-8起源?

谢谢你的帮助!

unicode lua utf-8 coronasdk

1
推荐指数
1
解决办法
3214
查看次数

ThreeJS正交相机:调整场景到窗口的大小

在ThreeJS中,我使用的是OrthographicCamera,因为我有几个应该从正面显示的对象,没有任何透视变形.这可以解决一个问题:我创建的一堆对象应该总是大致填满屏幕,但不能小得多或者更大.使用例如

var factor = 4.5;
this.camera = new THREE.OrthographicCamera(-window.innerWidth / factor, window.innerWidth / factor, window.innerHeight / factor, -window.innerHeight / factor, 1, 1000);
Run Code Online (Sandbox Code Playgroud)

...我可以让它在1920x1080像素分辨率下正常运行,但是当我将窗口调整到更小的尺寸并重新加载页面时,对象将开始变得太大,因为它们就像它们被修复一样.(当使用带摄像头的CombinedCamera时,调整大小是动态的,效果很好.)如何使用OrthographicCamera解决这个问题?或者是否有一个技巧可以让我在CombinedCamera中关闭视角?

谢谢!

webgl three.js

1
推荐指数
1
解决办法
6697
查看次数

Unity TextMesh Pro 颜色标签被忽略了?

我正在将 Unity C# 与 TextMesh Pro 一起使用。当勾选富文本(并确保未勾选覆盖标签)时,我这样做了,这意味着允许像这样的颜色标签

<color=#FF0000>* Susan has joined</color>
<color=#000000>Hello!</color>
Run Code Online (Sandbox Code Playgroud)

我还尝试了各种变体,例如 <#FF0000> 等。但是,对我来说,一切都保持黑色(Unity 调试控制台除外,它在 Debug.Logging 时也支持这些颜色标签)。<alpha=#44>顺便说一下,使用标签工作正常。该怎么办?谢谢!

c# unity-game-engine

1
推荐指数
1
解决办法
2135
查看次数