在三维中给定一个中心坐标,随机生成聚类点
我希望能够在3D空间中生成一组点,从而从起点(在这种情况下,在这种情况下,在这种情况下,在指定的球体半径(在这种情况下为4))中产生大部分点(在这种情况下,0,0 ,0).我也希望它也会产生偶尔的离群值. 这与此相似: ,但我希望能够调整一些设置.我将在C#中生成此内容,并且我熟悉随机类,并且对球体有所了解.我不确定如何将它们拼凑在一起. 我有可以在球体中产生一个点的这个,但是我希望它将其聚集在该中心点: // elsewhere in code private static readonly Random Random = new Random(); private static double NextDouble(double minValue, double maxValue) { double next = Random.NextDouble(); return minValue + (next * (maxValue - minVal
8 2024-04-26
编程技术问答社区
在Unity中组合大量的网格
我将MRT扫描的生成的3D模型导入了统一.不幸的是,该模型被导入许多组成整个模型的切片. Hierachy就是这样: 您可以想象,这需要大量的烦恼并减慢进一步的过程.因此,我想将"默认"的孩子(default_meshpart0,default_meshpart0,default_meshpart1,...)组合到一个网格中.我发现了有关 解决方案 也许您需要做一些post-scan process. 尝试: 在3d software中打开扫描模型,例如玛雅,3D最大或搅拌器. Attach或Merge所有部分一起. 将其导出为.fbx. 将其导入统一. 团结将是single gameObject. 其他解决方案 组合网格实际上很简单(我会在一分钟内完成您的操作),但是有一个陷阱 - 虽然它在运行时很容易做到结果将网格作为磁盘的硬文件资产.我最终到达那里,但它比看起来要棘手.如果您可以在start()完成此操作,则无需保存资产,并且可以在编辑模式下进
10 2024-04-26
编程技术问答社区
为什么我的3D碰撞检测不工作?
我世界上有几个对象,有三种主要类型.第一个是自我,这是玩家,玩家没有移动,但他们确实旋转了.第二个是子弹,它们以直线飞出从用户飞出.第三个是目标,这些只是坐在某个地方,等待被击中. 这是我用来进行碰撞检测的代码,并且不起作用: foreach (GameObject go in bullets) { float goRadius = go.Model.Meshes.Sum((x) => x.BoundingSphere.Radius) * go.Scale; EnemyObject last = null; Vector3 goRealPos = Vector3.Transform(go.Position, Matrix.CreateScale(go.Scale) * Matrix.CreateTranslation(go.Position) * Matrix.CreateRotatio
6 2024-04-26
编程技术问答社区
围绕游戏对象的多个轴进行旋转
我正在使用Unity为iOS创建一个测量应用程序.我能够测量2分之间的距离,并在A GameObject中显示.这就是我到目前为止所取得的成就: [![测量地板上的东西.用户查看顶部] [1]] [1] [![在垂直平面上水平测量] [2]] [2] 我的更新方法就是这样. if(textObj.activeInHierarchy == true) { direction = pointTwo - pointOne; textObj.transform.right = direction; } textObj是白色测量指标. pointOne和pointTwo是行的起点和终点. 我想显示此度量指标,无论其位置如何,用户总是可以读取的.但是在我的情况下(第二张图片),指示器应朝着用户围绕其X轴耕种,其
6 2024-04-26
编程技术问答社区
我的XNA立方体有什么问题?
我正在关注此样本试图构建在上面.我将代码合并到我的解决方案中,这是一个Windows Form应用程序(有点棘手的w/XNA). 当我终于有一个立方体绘制的立方体最终被内到外...还是外部...或?为自己看看. 该应用程序现在为几千行,所以我不能在这里粘贴它.我需要知道从哪里开始寻找. 任何想法这里怎么了? 看来两侧被吸引到了秩序...但这没关系.图形引擎应确定可见的内容和不可见的内容,但似乎已经弄错了. 预先感谢. 解决方案 有一个XNA框架类,称为GraphicsDevice,其中包含基本渲染参数的所有属性. 在GraphicsDevice内部有一个成员结构DepthstenceState,需要使用以下属性进行配置: depthbufferenable = true depthbufferfunction = Lessthanequal depthbufferwriteenable = true 最简单的方法是简单地将其设置
10 2024-04-25
编程技术问答社区
如何根据移动的点和最近的点得到抛物线的形状
不是很擅长数学,我的项目有问题. 目标是3D文件上的边界校正. 在我的应用程序中,用户在X轴上移动一个3D点,以纠正或修改对象的边界. 我想沿相同方向移动最近的边界点,但要降低.我的意思是,没有比重点更能移动的要点.最接近的点移动最多,最远的点应该移动更少. 在图像上,红点表示点的初始状态.用户在x方向上拉动P0.还有其他要点.点的最后一个状态由紫罗兰点表示. 这是我尝试的. //On point moved event //Get nearest boundary Points (Uses Geometry3D to get boundary points). (var clothDMesh, _) = Utilities3D.BuildDMesh(baseMesh); CreateClothModel(clothDMesh); var boundryVertices
10 2024-04-25
编程技术问答社区
如何在XNA中在3D地形上画圆?
所以我一直在网上寻找这个问题的答案,但是我似乎缺少某些东西. 我有一个小项目正在动态地在XNA 4.0中创建3D地形,但是我希望能够在地形上绘制一个圆圈(或任何其他形状,但让我们先带一个圆圈). 现在,我已经阅读了一些有关"投射纹理"的东西,但是我承认,在阴暗器语言方面,我完全亏损了. 这个想法是我可以(动态地)创建一个基本形状,例如一个直径为2"单位"的圆,然后将其绘制在地形上以作为光标所在的指示器. (我能够在3D地形上获得光标位置.) 有人知道该怎么做吗,是否需要使用着色器?对此事的任何帮助都将被重组! 预先感谢! 解决方案 您可以使用着色器... 您将参数传递到地形着色器,光标的3D世界位置和半径...定义一个球体, 技巧是通过顶点世界的位置从顶点着色器到像素着色器,然后 在像素着色器中,您只需要在绘制像素的球体内,在球体内. 编辑:我发现了一个由我自己完成的旧着色器...有两种类型的选择圆圈和盒子,在这里您是: unifo
14 2024-04-25
编程技术问答社区
为一个球体创建类似谷歌地球的导航
这个问题是关于Unity3D的. 我想创建一个类似于 我的尝试是如果我开始拖动,将鼠标位置投射到球体上.在下一个帧中,我进行相同的操作,并计算起始拖动和端拖动位置之间的角度. private void RotateCamera(Vector3 dragStart, Vector3 dragEnd) { // calc the rotation of the drag float angle = Vector3.Angle(dragStart, dragEnd); // rotate the camera around the sphere Camera.main.transform.RotateAround(sphere), Vector3.up, angle); } 我想到使用Unitys rotatearound 方法以计算的角度旋转相机.不幸的是,我没有旋转向量(在示例中使用vector3.up显然是错误的). 有人知道我如何计算该向量
10 2024-04-25
编程技术问答社区
在WPF 3D中用一个圆柱体连接两个球体
我想在3D WPF中绘制带有一些顶点和边缘的普通图. 这意味着顶点将是一个球体,边缘将是一个圆柱体. 我想先绘制一些球体,然后将它们与气缸连接起来.我能够使用实用的WPF Graph编程文本中的示例在自由空间中分别绘制球形和圆柱体.我没有得到任何帮助. 如何完成? 解决方案 这是两个球体,由圆柱连接,在3D空间中旋转. Init方法需要两点,但恐怕只有在希望正确连接球的情况下才能更改Z轴. 该代码有点混乱,是从许多来源编译的,包括您在另一个问题中发布的您自己的Sphere Generation代码. XAML带有视口:
8 2024-04-25
编程技术问答社区
AxAcroPDF控件的窗体在关闭窗体时挂起。
我正在处理C#编写的Windows Forms .NET应用程序,该应用程序需要显示具有所有关联功能的3D PDF(旋转对象,更改灯等).我正在使用AxacroPDF COM控件,并且运行顺利.问题在于,当我尝试关闭放置控件的形式时,有时它悬挂了几秒钟,没有明显的理由在处置控件时.我在测试期间加载的3D文件并不是特别重.独立的Adobe读取器中的同一文件打开并关闭,没有特定的延迟. 我正在使用Windows表单关闭事件中的以下代码: private void DrawingForm_FormClosing(object sender, FormClosingEventArgs e) { this.axAcroPDF.Dispose(); Application.DoEvents(); CoFreeUnusedLibraries(); } [System.Runtime.InteropS
10 2024-04-25
编程技术问答社区
循环定时器中的bool不工作 Unity 3D
使用C#,我试图每3秒发射一颗子弹,所以我的工作流程: 按下火按钮 仅当布尔火山是true 时才开火 设置bool fireagain = false 开始计时器 计时器完成= bool fireagain = true 调试时似乎都可以正常工作,但是当我测试它时,我仍然可以每秒钟射击10个子弹.因此,以某种方式,即使根据Debug bool Fireagain是错误的,它也不关心Bool Fireagain是错误的. . public void Update() { //If LEFT MouseButton is pressed, cast yer spells. if (fireAgain == true && Input.GetMouseButtonDown(0)) { StartCoroutine("LoopRotation"); fireAgain = fa
10 2024-04-25
编程技术问答社区
三维转换WPF
i在3D WPF中绘制两个球体,其中诸如point3d(0,0,0)和point3d(-1.0,1.0,2.0)之类的点为0.10 现在,我想绘制一个连接这些球的圆柱体,我唯一拥有的是半径0.02.我想知道如何计算此气缸的3D点,高度,方向等. 我通过找到中点btw球点尝试,它将圆柱体放在这两个球的中间,但不在正确的方向上.我想以直角旋转圆柱体.我使用vector3d.anglebeteweween(v1,v2)来找到它给我" nan"的角度.我在下面使用了我使用的代码. Vector3D v1 = new Vector3D(0, 0, 0); Vector3D v2 = new Vector3D(1.0, -1.0, 2.0); Vector3D center = v1+ v2/2; Vector3D axis = Vector3D.CrossProduct(v1, v2); double angle = Vector3D.A
8 2024-04-25
编程技术问答社区
寻找3D绘图组件
我正在寻找能够基于3维点绘制3维图像的组件. 示例(请参阅3D绘图): http://www.wolframalpha.com/input/?i= abs%28x%29+%2B+abs%28y%29 在我的应用程序中,我的点包含x-,y-和z轴的坐标. 我正在寻找这样的用法: PlotComponent.Points.Add(x,y,z); 定义视角的可能性也很好. 有没有开源组件? (不能是商业许可证,因为该项目是一个学生项目) winforms应用程序 解决方案 我们最终使用了ilnumerics.net: http://ilnumerics.net/ 它具有绘制不错的3D图的能力,但是旋转/缩放功能是故障的,可能会导致货物重新绘制. 在3D组件的内部代码中,处置/重复控制导致nullReeferenceException的控制也存在一个问题,在〜10-20重复后. (我们最终通过尝试/捕获等丑陋的反复试验,依此类推) ) 我在此处
10 2024-04-24
编程技术问答社区
世界速度转为本地速度(飞船可能向后飞行,所以需要世界的负速度等)。
标题几乎全部说明了.说我有一艘船,它的worldvelocity是具有这些价​​值的vector3: X:0 Y:0 Z:1 (假设 +z是向前的, +y是向上的, +x是正确的) 该矢量3被添加到存储翻译和旋转的船只变形矩阵中. worldtranslations.translation += worldvelocity 我的船向前走,它停止以1(正确)的速度加速,因为这是其目标速度,但是如果船向右旋转180度,那么它现在向后飞行怎么办.自动的船只目标速度应检测到这一点,并开始尝试再次飞行. 问题是我不知道如何从船只速度和localtransforms中取出本地速度,我在任何地方都找不到答案. 因此,目前我的船使用世界速度检查其目标速度是否达到目标速度,只要船不旋转,它就会正确飞行.我的目标速度将是一个,所以我的船将其当前速度(0,0,0)与目标速度(0,0,1)进行比较,并适当加速直到达到目标(0,0,1)并停止加速至保持恒定的速度,但是如果我转动(例如右90
8 2024-04-24
编程技术问答社区
如何在 C# 中计算旋转,使 System.Numerics.Vector3 与世界向上向量 [0, 1, 0] 对齐?
我的三角形定义为3分( a [-0,21090554,3,81115985,-23,54532623] b [0,01877949,3,79133320,23,49146652] c [33,08344650,1,99846101,0,20934258]. 您可以看到三角形略微倾斜,与地面不平行: 我需要旋转三角形,以使其与地面平行(所有三个点y坐标都将变得相同). 因此,我需要计算一个旋转以对齐 triangle normal 与世界上升矢量[0,1,0](我的图片上的垂直正常是[0,10,0],因为[0,1,0]向量太短而无法看到并将其与三角形的正常区分开). 我是3D的新手,不知道如何计算旋转(我猜是Quaternion或矩阵)并将其应用于所有三角形点. 解决方案 您可以使用 quaternion.createfromaxisangle 创建quaternion. var normal = Vector3 Normalize((A
10 2024-04-24
编程技术问答社区
打印视口
C#WPF 3D Visual Studio 2010 Net 4.5 hi 我正在尝试打印出我创建的3D图像,但无法正确. 印刷的图像在大小上发生变化,具体取决于窗口的大小等. 或者被剪裁等. 我想要的是打印打印机上的视图端口, 将其拉伸到纸张的范围内并保持各个方面的评分. PrintDialog dialog = new PrintDialog(); if (dialog.ShowDialog() != true) { return; } StackPanel myPanel = new StackPanel(); myPanel.Margin = new Thickness(40); Image myImage = new Image(); myImage.Width = dialog.PrintableAreaWidth - (2 * MYD
8 2024-04-24
编程技术问答社区
如何在XNA中移动3D物体?
我想移动3D汽车型号,当我按左或右箭头键时,我会更改角度,当我按向上箭头时,汽车驱动器. 这是更新方法中的代码: float dirX = (float)Math.Sin(angle); float dirY = (float)Math.Cos(angle); if (Keyboard.GetState().IsKeyDown(Keys.Up)) { position += new Vector3(-dirX, dirY, 0); if (Keyboard.GetState().IsKeyDown(Keys.Left)) { angle += 0.015f; } if (Keyboard.GetState().IsKeyDown(Keys.Right)) {
8 2024-04-23
编程技术问答社区
我怎样才能在WPF中进行3D转换?
在flash10 flash10示例我在[(来源: source sourceforge.net etet ) 我想将此示例移植到wpf. 是否有一个示例如何在没有XAML的C#中的WPF中进行这样的3D转换? 在Silverlight 3中,您将使用Matrix3Dprocotion.您将如何在WPF中实施? 解决方案 我已经设置了一个基本的薄立方体并将其旋转,因此您可以看到转换如何通过C#. . 在XAML中设置您的视口
10 2024-04-23
编程技术问答社区
Unity3d-如何有效地从属于另一个游戏对象的另一个类中调用方法?
这是此问题 . 我想在这里做的是创建一个程序来根据3D模型的运动来计算一些分数并将其显示为模型的颜色的变化. 但是,由于模型的运动记录器,得分计算和着色来自附上不同游戏对象上的不同类,因此我需要让它们相互连接以一起工作. 我想出的解决方案如片段之类的解决方案,但是系统变得懒惰且冻结.我是团结世界的新手,所以我问你们,有什么方法更有效地做这种工作吗? 这是我的代码结构,因此此问题涉及3个不同的类互相呼叫(全部连接到不同的游戏对象) 1)bonehighlighter.cs 根据上一个问题的脚本对模型进行一些重新彩色 //declare SkinnedMeshRenderer public SkinnedMeshRenderer smr; //initialization //previously put the initialization on Start(), but I try to put it on Awake() to make the
6 2024-04-23
编程技术问答社区
XNA三维碰撞矩阵不工作
我以前问了一个问题,说明为什么我的碰撞不起作用.我得到了一个很好的答案,这是有道理的:将与DrawModel方法相同的转换应用于ISCollision方法.但是,这无效.我无法弄清楚如何在ISCollision方法中进行相同的转换.如果有人能帮助我,那就太好了.谢谢!这是方法: private bool checkPlayerCollision(Model model1, Matrix world1) { //Make floor matrix Matrix floorMatrix = Matrix.CreateTranslation(new Vector3(0, 0, 0)); //Make ship1 matrix Matrix ship1WorldMatrix = Matrix.CreateTranslation(ship1loc); //Make ship2 matrix Matrix ship2WorldMatrix = M
18 2024-04-23
编程技术问答社区