小编Non*_*one的帖子

切片3D模型?

我想相对于无限平面切片3D模型(在WPF中).我正在检查边缘是否与无限平面相交.如果为true,我将在交叉点位置创建一个新点,所以我得到了几个我想要生成上限的点,以便在切片后关闭模型.例如,如果这是横截面,结果如下: 示例结果 注意:三角测量并不重要.我只需要三角形.

我还需要按如下方式检测孔(孔标记为红色): 带孔的示例结果

如果不可能按照我的想法(似乎如此)这样做,我该怎么做呢?开发人员如何在切片后封顶对象?

还有太多的困惑.例如,第一张图片的结果可能是: 混乱 我错过了什么?


编辑: 经过一些研究,我知道一件事我不知道: 在此输入图像描述

输入现在很稳健,我需要完全相同的输出.我该如何实现?

c# 3d unity-game-engine

9
推荐指数
2
解决办法
1263
查看次数

自动字典键?

我保持谷歌搜索一段时间,我发现让你有一个包含相应唯一键的变量的列表的最佳方法是a HashTable或a Dictionary,但我找不到任何能让你拥有自动键的东西(类型)整数).我想调用一个函数,它将一个对象(作为参数传递)添加到字典中,并返回自动生成的键(int),并且没有任何键重复.我怎么能做到这一点?我完全挣扎了!

编辑:澄清事情.这是一个服务器,我想为每个客户端分配一个唯一的密钥.如果我使用最大键值,则此值很快将达到大型服务器上的int最大值.因为如果客户端连接然后断开连接,则他留下未使用的值,该值应该被重用以避免达到非常高的密钥最大值.

c# dictionary hashtable

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

我怎么能将bool多边形[,,]

如果有人关心,我正在使用WPF ....

故事的开头:

我得到了一系列灰度图像(模型切片).用户输入灰度值的"范围"以构建3D模型.因此,我创建了一个3D bool数组,以便更容易地构建3D模型.此数组表示一个像素框,指示是否应构建/生成/填充每个像素.


领带:

使用a bool[,,],我想检索List<Point3D[]>每个Point3D[]长度为3的位置,并表示3D空间中的三角形.


附加信息:

生成的模型将进行3D打印.在bool[,,],true表示物质的存在,而false表明没有物质.我需要避免使用立方体模型,其中每个像素都被立方体替换(根据我的目的,这将是无用的).模型应尽可能平滑且尽可能准确.


我试图做的:

1-我实现了行进立方体算法,但似乎没有创建它来接受值的"范围".

2-我一直在努力制作自己的算法,但我部分失败了.(这真的很复杂.如果你想了解更多信息,请告知)


一些我不知道如何实现的预期解决方案:

1-修改Marching cube算法,以便使用a bool[,,]

2-修改Marching cube算法,以使其使用"范围" isolevel值的工作

3-展示如何在WPF中实现适合我的目的的另一种算法(可能是Ray-Casting算法).

4-请求我尝试实现的算法源,然后向我展示如何解决它.(它首先是将a多边形化bool[,,])

5-其他一些神奇的解决方案.

提前致谢.


编辑:

通过说

使用a bool[,,],我想检索List<Point3D[]>每个Point3D[]长度为3的位置,并表示3D空间中的三角形.

我的意思是我想要检索一组三角形.每个三角形应表示为3 Point3D秒.如果您不知道Point3D它是什么,它struct包含3个双打(X,Y和Z),用于表示3D空间中的位置.

行进立方体算法的问题在于它有点模糊.我的意思是,通过这样做,你有什么理解?

cubeindex = 0; 
if (grid.val[0] < isolevel) cubeindex |= 1; 
if (grid.val[1] < isolevel) cubeindex |= 2; 
if (grid.val[2] < isolevel) cubeindex |= …
Run Code Online (Sandbox Code Playgroud)

c# 3d wpf marching-cubes volume-rendering

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

为什么游戏开发人员在应用程序级别中避免使用TCP并使UDP可靠?

许多游戏开发者选择在应用程序级别使UDP 可靠.这不是TCP的用途吗?我创建了一个API,使用UDP和TCP数据包启用客户端 - 服务器通信.我应该在列表中添加Reliable UDP吗?为什么?如果我使用TCP有问题吗?

我只是想知道RUDP是否对TCP有任何好处,因此我可以选择是否添加RUDP支持.

networking udp tcp rudp

5
推荐指数
2
解决办法
2871
查看次数

多次执行命令行工具的"MOST"有效方法是什么?

当您搜索执行命令行工具或命令提示符的方法时,您会发现太多结果,如此问题,此问题本文.它们都包含完全相同问题的解决方案.但是,我目前正在开发的程序必须执行命令行工具近500次.当我执行以下操作时:

for (int i = 0; i < 500; i++)
{
    Process.Start("cmd","My Input: " + i);
}
Run Code Online (Sandbox Code Playgroud)

计算机停止响应一段时间,因为同时打开了太多程序.

当我执行以下操作时:

for (int i = 0; i < 500; i++)
{
    Process.Start("cmd","My Input: " + i);
    System.Threading.Thread.Sleep(myInterval);
}
Run Code Online (Sandbox Code Playgroud)

该程序花费了太多时间来完成工作(如果我的程序在执行这些命令时挂起,我没有问题).

从我的观点来看,所有这一切发生的主要原因是我每次运行工具时都会打开另一个cmd窗口.我可以保持一个单独的cmd窗口打开并继续提供命令直到我完成了吗?有没有更有效的方法呢?

c# performance cmd

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

Thread.Abort()和Thread.Suspend()之间的区别?

我从来没有在任何地方找到解决方案.

暂停线程和中止线程有什么区别?

我正在调用一个持续挂起的函数,直到调用一个事件.我想停止这个线程和挂起功能.我应该暂停还是中止​​线程?

c# multithreading

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