Tag: math

始终返回正值

我有一个数字可能是负数或正数,但我只是想返回正值。 -4 -> 4 5 -> 5 我知道我可以做一个简单的检查,看看它是否为零然后返回它*-1但我不记得我的生活是什么实际的Maths运算符! 谁能告诉我它是什么?

如何在C#中向上或向下舍入?

我尝试过使用Math.Round和MidpointRounding。 这似乎没有做我需要的。 例: 52.34567 rounded to 2 decimals UP = 52.35 1.183 rounded to 2 decimals DOWN = 1.18 我需要编写自定义函数吗? 编辑: 我应该更具体一点。 有时我需要一个像23.567这样的数字来向下舍入到23.56。 在这种情况下…… Math.Round(dec, 2, MidpointRounding.AwayFromZero) gives 23.57 Math.Round(dec, 2, MidpointRounding.ToEven) gives 23.57 可能会出现最多9个小数位的小数,需要四舍五入到小数点后的1,2,3或甚至4位。

3D点上的垂直点

之前已经提到过这个问题,参考2D。 这个问题扩展到3D。 如何在3D空间中的点上找到直线相交点? 如果我的线由点(x1,y1,z1)和(x2,y2,z2)并且我在空间中有一个点(x3,y3,z3) 。 如何在(x3,y3,z3)的直线上找到点(x4,y4,z4)的垂直交点?

是否有任何C#数学库进行插值/外推

例如,我有分数 YX 100 50 90 43 80 32 需要解决y = 50 要么 YX 1/1/2009 100 1/3/2009 97 1/4/2009 94 1/5/2009 92 1/6/2009 91 1/9/2009 89 需要解决y = 1/23/2009

在C#中是否有eval函数?

我在一个textbox输入一个方程式,它将生成给定抛物线的图形。 是否可以使用评估function? 我的C#2010没有microsoft.jscript 。

浮点精度

我有一个用C#编写的程序,有些部分是用本机C / C ++编写的。 我使用双精度计算某些值,有时结果是错误的,因为精度太小。 经过一番调查后,我发现有人将浮点精度设置为24位。 当我将精度重置为至少53位(使用_fpreset或_controlfp)时,我的代码工作正常,但我仍然需要弄清楚谁负责将精度设置为24位。 我能做到这一点的任何想法?

OpenGL – 旋转不起作用

背景 我目前有一个我创建的环境,我加载了一些形状(以供我参考)并且我试图让控件向前,向后移动并旋转我正在寻找的位置。 我使用我的观察点和摄像机位置点进行向前和向后计算。 我试图旋转360度,但似乎根据我到目前为止得到了一些奇怪的限制。 我正在输出我的xangle,看看我一直在哪里。 为了旋转,我改变了lookat变量(x,y和z),同时保持位置(x,y,z)相同。 问题 当连续增加角度时,我击中两个reflection点,其中出现的旋转改变方向。 无论出于何种原因,这些似乎发生在60度和300度,如下所示: 显然这些角度是不正确的。 我已经评估了旋转发生时应该发生的行为,并且计算出的笛卡尔坐标似乎是正确的但是角度的显示是关闭的。 我的setupviewport子: Private Sub SetupViewport() Dim w As Integer = GLcontrol1.Width Dim h As Integer = GLcontrol1.Height Dim perspective1 As Matrix4 = cam.GetViewMatrix() * Matrix4.CreatePerspectiveFieldOfView(1.3F, GLcontrol1.Width / CSng(GLcontrol1.Height), 0.1F, 2000.0F) GL.MatrixMode(MatrixMode.Projection) GL.LoadIdentity() GL.Ortho(0, w, h, 0, -1, 1) GL.LoadMatrix(perspective1) GL.MatrixMode(MatrixMode.Modelview) GL.LoadIdentity() GL.Viewport(0, 0, w, h) […]

将3D点投影到2D屏幕坐标

基于3D Programming for Windows(Charles Petzold)第7章中的信息,我试图编写一个辅助函数,将Point3D投影到包含相应屏幕坐标(x,y)的标准2D点: public Point Point3DToScreen2D(Point3D point3D,Viewport3D viewPort ) { double screenX = 0d, screenY = 0d; // Camera is defined in XAML as: // // // PerspectiveCamera cam = viewPort.Camera as PerspectiveCamera; // Translate input point using camera position double inputX = point3D.X – cam.Position.X; double inputY = point3D.Y – cam.Position.Y; double […]

C#decimal取上限2

我想将我的十进制值舍入为2.2222到2.23。 当我使用圆形时, decimal a = Math.Round((decimal)2.222, 2); 当我使用天花板时,它会导致3 decimal c = Math.Ceiling((decimal)2.22); 我怎样才能得到2.2222到2.23?

在C#中舍入到2个小数位

我有一个十进制数字,可以像下面这样: 189.182 我想将其舍入到2位小数,因此输出如下: 189.19 Math类中是否内置了此function,还是其他function? 我知道天花板function存在,但这似乎没有做我想要的 – 它会绕到最近的int,所以在这种情况下只是’189’。