问题标签 [surface]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1025 浏览

physics - 电晕粗糙表面:摩擦

我想做一个粗糙的表面,当一个球滚过它时,球会很快停下来。(就像一个沉重的钢球在沙子上滚动)

我已经尝试将球和表面的摩擦力设置为 1.0,并且我尝试为两者设置更高的密度,但这似乎不是我想要的,只有当它撞到东西时球才会停止,否则,它只会在表面继续滚动。(虽然很慢,但我希望它在 2 秒内停止)。

0 投票
3 回答
1771 浏览

algorithm - 在 2D 表面上绘制居中文本的算法

我正在寻找稳定的算法来在二维表面上水平和垂直地绘制可能较长的文本。这不是特定于语言的,因此如果您可以提供任何语言的示例,那将非常有帮助。

我有以下关于我要绘制的文本和表面的信息:

文字信息:

  • 以 px 为单位的文本大小(行高),当然远小于表面的高度
  • 字体(可以是任何字体)
  • 从 ASCII32 到 ASCII126 的简单字符集
  • 文字可能比较长,单词之间用空格隔开
  • 一旦不再适合表面的宽度,文本应该在空格上“自动”中断
  • 文字是英文的。

表面信息:

  • 宽度和高度
  • 全局坐标系中的 x 和 y 坐标(假设原点在屏幕的左上角)

我确实实现了自己的方法,但它非常不稳定:文本散布在表面上,对齐不正确,有时根本不居中。虽然找不到有用的东西,但也搜索了一些好的方法。我希望stackoverflow社区可以帮助我。非常感谢你。

0 投票
5 回答
10589 浏览

computational-geometry - 网格到网格的交叉点

我正在寻找描述如何确定一个三角形网格是否与另一个相交的库或论文。

有趣的是,我空空如也。如果在 CGAL 中有某种方法可以做到这一点,那我就想不通了。

看起来它显然应该是可能的,因为三角形相交是可能的,而且每个网格都包含有限数量的三角形。但我认为必须有一种比明显的 O(n*m) 方法更好的方法,其中一个网格有 n 个三角形,另一个网格有 m 个三角形。

0 投票
2 回答
910 浏览

performance - 高效的对象空间隐藏表面去除

我有以下问题:我需要生成 3d 模型的 2d 视图。在正常情况下,这当然是微不足道的:只需使用画家算法或类似技术将所有内容渲染到屏幕上。不幸的是,输出需要是 2d 几何,以便可以发送到 CAD 包。这意味着必须在向量级别而不是像素级别上进行隐藏表面的去除,这使得大多数标准方法(画家算法、z-buffer 等)无法使用。

我发现执行对象空间隐藏表面移除的最常用技术是使用 BSP 树,理论上它工作得很好。所以我实现了它,但性能甚至无法接受,考虑到它的 O(n 2 ) 复杂性,这并不完全令人惊讶。我正在使用的测试场景在背面剔除后有大约 4800 个三角形,但我预计该算法将需要处理大约 5 或 10 倍数量的场景,当您需要对其进行平方时,它很快就会变得相当大。我们几何库的(缺乏)速度也无济于事。

从那以后,我尝试了不同的方法来解决这个性能问题,主要是基于将三角形分成较小的组以减少 O(n 2 ) 的影响,例如八叉树(超过一半的多边形是存储在根节点中)并将二维投影场景划分为 10x10 网格以减少每个正方形的三角形数量(有效,但多边形交叉点的减少被重复该过程 100 次的需要所抵消)。

今天我又进行了一次尝试,将所有三角形投影到 2D 中,并通过首先测试边界正方形是否重叠然后测试两个多边形的每个组合的每个边缘交叉点 (3x3 = 9) 来查看哪些三角形相交。对于线交点,我使用此处描述的算法绕过了几何库。总共执行了大约 1160 万个线交叉点,大约需要 30 秒,这仍然太长了(我会说绝对最大运行时间约为 5 秒),别介意这只是算法的一部分。

我开始对如何解决这个性能问题没有想法,并希望你们中的任何人都对更好的算法有一些好的想法。我能想到的都是O(n 2 )。

0 投票
9 回答
324479 浏览

python - matplotlib 中的曲面图

我有一个 3 元组列表,表示 3D 空间中的一组点。我想绘制一个覆盖所有这些点的表面。

包中的plot_surface函数mplot3d要求参数 X、Y 和 Z 是二维数组。绘制表面的正确plot_surface功能以及如何将我的数据转换为所需的格式?

0 投票
1 回答
1960 浏览

shader - Surface Shader 中的 Unity Shader 顶点格式

我正在尝试使用表面着色器中的顶点数据来获取角度。我的相机以 0,0 为中心。顶点函数中的 v.vertex 在什么坐标系中?

我认为这将是世界坐标系,但是与提前在 3DS Max 中旋转的对象相比,统一旋转的对象得到不同的结果,以看起来相同的顶点。我实际上通过 v.vertex.xyz 收到了哪些数据?

0 投票
0 回答
281 浏览

preview - 使用媒体记录器录制时是否可以更改预览表面

任何人都可以帮助我解决方案或领导吗?我正在使用 MediaRecorder 录制视频。我已将表面视图附加到记录器以进行预览。我有不同的纵向和横向布局。现在问题是当我更改方向时,表面会再次创建(当然,横向n纵向不同)..在这种情况下,为了获得预览,我必须停下来,然后用新的表面准备刻录机并重新开始刻录机。是否可以更改预览表面同时记录?

surfaceCreated(SurfaceHolder holder) 我正在做以下事情

任何帮助都是非常可观的。谢谢

0 投票
1 回答
416 浏览

c++ - 计算碰撞中两个正​​方形的重叠

我正在尝试计算两个碰撞矩形的重叠区域。

我发现分离轴定理可以计算它们是否发生碰撞,但我不确定我可以用它来计算碰撞区域

如果是,请告知我必须执行哪种计算?

基本上,我需要计算一张图片的隐藏部分的百分比(例如,矩形 A 是一张 256*256 的图片),并且另一张图片与它重叠,我想获得隐藏部分与全局相比的百分比图片的表面。

0 投票
1 回答
1003 浏览

c++ - C++ - SDL:Blitting 性能问题

我是 C++ 和 SDL 的初学者,但我已经开发游戏好几年了。

我选择 SDL 是因为它的简单性,因为我想要的只是 2D 游戏,但我并不满意。与表面一起工作的功能消耗了很多能量,说实话太多了。

当我第一次开始使用 SDL 时,我得到了 30 FPS。然后我发现要优化表面,帧率跃升至 60。此外,将像素格式从 24 位切换到 32 位也将其提高到 100。

在我看来,与其他用于游戏开发和编程语言的库相比,这种性能很弱。我一直认为这仍然是我的错,如果一切设置正确,我的 FPS 可能会飙升。

所以我不断测试,发现没有代码运行(不包括我的 FPS 指标)会产生 400 FPS。然而,使用 SDL_FillRect() 函数清除屏幕会将其降至 100。然后,对于每个绘制的精灵,帧速率会变得越来越低。

真的应该这么慢吗?

0 投票
1 回答
956 浏览

vector - SDL_Surface Vectors

I'm attempting to create a vector of surfaces, which will contain messages the user inputs (its a chat box). But whenever I add new surfaces to the vector and display them, the other surfaces get displayed in the surface vector. I don't know why this is. I assumed it was because the vector keeps being resized with .push_Back(); and the computer wasn't doing this before the other surfaces get moved, so they get "stuck in the middle" and displayed in place of the surfaces. But when I checked against that, it just didn't add any at all! I even tried .reserve( myVect.size() + 1); but alas that only gave me the same issue.

The problem rests with handle_input(); and how the messages are displayed I think. I cannot find anything on this issue anywhere on the web!

Here's my source:

Is there a better way to do this? Its supposed to just take the users text, put it into a vector of surfaces, and display them above.