Tag: 数学

如何检查我是否处于检查状态?

如果我处于已checked上下文中,如何在不导致/捕获OverflowException情况下,如何使用C#代码找出性能损失?

如何将int数组转换为int?

我想学习的方法是将一个int数组转换为C#中的int。 但是我想用数组中的值附加int。 例: int[] array = {5, 6, 2, 4}; 将被转换为等于5624的int。 在此先感谢您的帮助。

检查点是否在旋转的矩形中(C#)

我有一个C#程序(Windows窗体),它在一个图片框上绘制一些矩形。 它们也可以以一定角度绘制(旋转)。 我知道每个矩形的起点(左上角),它们的大小(宽度+高度)和它们的角度。 由于旋转,起点不一定是左上角,但这并不重要。 然后当我点击图片框时,我需要检查我点击了哪个矩形(如果有的话)。 所以我需要一些检查点是否在矩形中的方法,但我还需要考虑每个矩形的旋转。 有人知道在C#中这样做的方法吗?

Circle – Line Intersection工作不正常?

我在http://mathworld.wolfram.com/Circle-LineIntersection.html之后写了这个圆线交叉检测,但看起来好像它或我遗漏了一些东西。 public static bool Intersect (Vector2f CirclePos, float CircleRad, Vector2f Point1, Vector2f Point2) { Vector2f p1 = Vector2f.MemCpy(Point1); Vector2f p2 = Vector2f.MemCpy(Point2); // Normalize points p1.X -= CirclePos.X; p1.Y -= CirclePos.Y; p2.X -= CirclePos.X; p2.Y -= CirclePos.Y; float dx = p2.X – p1.X; float dy = p2.Y – p1.Y; float dr = (float)Math.Sqrt((double)(dx * dx) […]

当任何数学运算产生’NaN’时,如何强制C#编译器抛出exception?

我最近编写的程序中的一些数学函数返回了不可接受的值,例如NaN(可能是因为没有检查某些函数的输入参数)。 问题是很难找到哪些函数传递了错误的值。 这会导致错误在整个代码中传播,并使程序在几分钟或几小时后崩溃,如果有的话。 我想知道是否有办法在任何操作产生NaN值的时候捕获这些错误操作(与我记得的某些C / C ++编译器抛出的’DivisionByZeroexception’几乎相同)。 提前致谢。 PD:如果需要,请随时重新标记我的问题。

如何简化分数?

如何简化C#中的分数? 例如,给定1 11/6 ,我需要将其简化为2 5/6 。

.net中有128或256位双等级吗?

我有一个应用程序,我希望能够使用大数字和非常精确的数字。 为此,我需要一个精确的解释,IntX只适用于整数。 在.net框架中是否有一个类甚至第三方(最好是免费的)可以这样做? 还有另一种方法吗?

计算第N个排列步骤?

我有一个字母az的字符[26]和通过嵌套的语句我正在生成一个序列列表,如: aaa, aaz… aba, abb, abz, … zzy, zzz. 目前,编写软件是为了从aaa-zzz生成所有可能值的列表,然后维护索引,并通过每个值对它们执行操作。 这个列表显然很大,并不是非常大,但它已经达到了内存占用过大的程度(还有其他领域正在研究,但这是我所拥有的)。 我正在尝试生成一个可以保留索引的公式,但是不要使用序列列表并根据当前索引计算当前序列(因为序列之间的操作之间的时间很长)。 例如: char[] characters = {a, b, c… z}; int currentIndex = 29; // abd public string CurrentSequence(int currentIndex) { int ndx1 = getIndex1(currentIndex); // = 0 int ndx2 = getIndex2(currentIndex); // = 1 int ndx3 = getIndex3(currentIndex); // = 3 return string.Format( “{0}{1}{2}”, […]

计算点击点的角度

我正在制作WPF控件(旋钮)。 我试图找出数学来计算角度(0到360)基于圆圈内的鼠标点击位置。 例如,如果我点击X,Y在图像上的位置,我会得到一个点X,Y。 我也有中心点,无法弄清楚如何获得角度。 我的代码如下: internal double GetAngleFromPoint(Point point, Point centerPoint) { double dy = (point.Y – centerPoint.Y); double dx = (point.X – centerPoint.X); double theta = Math.Atan2(dy,dx); double angle = (theta * 180) / Math.PI; return angle; }

Hashtable / Dictionary碰撞

仅使用标准英文字母和下划线,可以最多使用多少个字符,而不会在哈希表/字典中引起潜在的冲突。 所以字符串如: blur Blur b Blur_The_Shades_Slightly_With_A_Tint_Of_Blue …