动态比特移位/取消移位
我想以相同的方式将多个块值存储到整数中,因为我可以将IP转换为int.我的问题是我需要对n个块进行此操作,不仅是4.我还需要指定每个块的最大值,这对于所有块而言都是相同的. 因此,在下面的示例中,如果我想存储整个IP范围,我的模块是4,而我的块为255,这是每个块的最大值.但是,如果我降低了我的块和/或阻塞,这似乎是不起作用的. 这是我的第一次尝试,但它无法正常工作: const int BlockSize = 100; const int BlockCount = 3; int shiftedValues = Shift(BlockSize, BlockCount); for (int shiftedValue = 1; shiftedValue
14 2024-04-26
编程技术问答社区
曲线内有控制点的贝塞尔曲线
请参阅下图. 所以我的问题是,可以像图像中一样创建一个拼图拼图,就像在曲线级别上或在曲线级别上所有控制点一样. (那是在曲线的范围内创建曲线和完美的镜子) 然后,不要使用控制点来计算边界.至少如果您需要紧密的界限,并且不想快速检查给定的剪裁矩形中的潜在可见性. 或者,切换到控制点在曲线上的花键,但是您最终可能会产生相反的效果,其中曲线延伸超出了其控制点所施加的边界. 其他解决方案 您可以轻松地将您的立方控制点转换为插值立方.只是扭转这一点: bezier vs. interpolation vs. interpolation cutic so: /* bezier = interpol 1 | ( x0)=X1; t | (3.0*x1)-(3.0*x0)=(0.5*(X2-X0)); tt |
14 2024-04-26
编程技术问答社区
从起点、终点和半径画出一个弧线
我希望获得 n 点的点列表;我会知道起点,终点和半径. 用户将用3个鼠标单击构建一个弧线,第一个定义起点和末端,第三个将设置半径的大小. 谢谢. 编辑:我不仅需要渲染它 - 我还需要点列表,因此使用渲染的API来执行此操作. 解决方案 令h是起点和终点之间的一半距离.毕达哥拉斯(Pythagoras),距中点和圆心中心的距离为w=√r²-h².您将通过从中点垂直绘制长度w的线段来找到该中心. 弧的起点由tan(φ)=δy/δx给出,在起点和中心之间,以及终点的相似. 然后您的n点具有坐标 Xc + r cos(φs + k (φe-φs)/(n-1)) Yc + r sin(φs + k (φe-φs)/(n-1)) 对于k= 0,1,...n-1.
14 2024-04-26
编程技术问答社区
在C#中替代BigInteger.ModPow();的方法
我正在寻找C#的BigInteger软件包的替代方案,该软件包已与Net 4.x一起引入. 使用此对象的数学操作非常慢,我想这是由于算术学以比原始类型更高的级别完成的事实 - 或不良优化. int64/long/ulong或其他64位数字缩小的方式,无法正确计算 - 我说的是64位整数的64位成员. 希望有人可以建议我的东西.预先感谢. 解决方案 老实说,如果您的数字非常大,需要使用它们进行大量计算,并且BigInteger库仍然没有为您削减,为什么不使用任何语言或工具包将其卸载到外部过程中你知道最好吗?您是否真的被限制在编写您要在C#中完全完成的一切? 例如,您可以卸载到 c#. 中 其他解决方案 Biginteger确实非常慢.原因之一是它是不变性的. 如果您执行A = A -B,则将获得A的新副本.通常这很快.使用BigInteger并说2048块的整数需要分配额外的2KB. 它也应取决于整体化(我认为不是那么复杂).我的意思是,对
8 2024-04-26
编程技术问答社区
沿着对角线移动鼠标
我可以使用哪种数学算法来计算移动鼠标的路径?我只想拥有这种功能: animateMouseDiag(int X, int Y){ //Move mouse 1 step towards goal, for loop most likely, from the current Mouse.Position Thread.Sleep(1); } 例如,如果我给它animatemousediag(100,300),它将将鼠标100移至右侧,而向下300,但在对角线上,不是在" L"中向右移动.同样,如果我给它(-50,-200),它将它移至对角线路径的相对坐标(左50和200上). 谢谢! (顺便说一句,这是一个Alt帐户,因为我觉得自己是一个白痴在我的主人公上询问基本的高中数学.我只是无法将其转化为编程.) 编辑:我提出了这个: public static void animateCursorTo(int toX, int toY)
12 2024-04-26
编程技术问答社区
在代码中切换四元数的手性?
我有四个数据数据,我试图从右撇子Y-UP坐标空间切换到左手Z-UP坐标空间.从阅读此书,我需要做的是switch the chirality. 我唯一能找到的信息是 > 我无法缠绕着它. 说我的四分法为: public static float[] quat= new float[4](0.70711,0.70711,0,0); 在C#代码中,如何切换手性? 我尝试否定轴,而简单地交换Z和Y值.如该链接所建议的那样,我尝试将四个四基因乘以另一季度等于90度.并且仍然看到不正确的旋转. 谢谢. 解决方案 假设您的原始坐标系A具有X正确,向上,Z到相机.新的坐标系B具有X右侧,Y与相机和Z向上.因此,从本质上讲,您需要交换Y和Z轴.到目前为止吗?并且您有一个Quaternion Q ,它描述了系统A中的某些旋转.您想找到一个quaternion r ,该 r 描述了系统b. 中的相同旋转 最好在将角度和轴向季节转换为四个方面的背景下考虑这一
14 2024-04-26
编程技术问答社区
如何确定一个2的幂值所需的右移位数?
我有一个接收两个值的函数. 我需要将其转换为枚举范围(0、1、2、3等),然后将其移回两个范围的功率. 0 1 1 2 2 4 3 8 4 16 5 32 6 64 7 128 8 256 9 512 10 1024 ... and so on. 如果我的功能接收到1024的值,我需要将其转换为10.在C#中执行此操作的最佳方法是什么?我应该只是在循环中不断划分2并计算迭代吗? 我知道我可以将其放回(1 解决方案 只需使用基本2的对数: Math.Log(/* your number */, 2) 例如,Math.Log(1024, 2)返回10. 更新: 这是一个相当强大的版本,该版本检查传递的数字是否有两个功能: public static int Log2(u
12 2024-04-26
编程技术问答社区
计算纬度和经度到公里数
我正在尝试使用纬度和经度计算我的 destination1 到 destination2 的距离 目的地1(Cebu City PH)具有纬度:1017.8590和经度:12353.4304 目的地2(talisay ph)具有纬度:1015.6445和经度:12350.0404 我的输出是: 299.28607720457882 km 代码: double lat1 = Convert.ToDouble(txtLat1.Text.ToString()); double lat2 = Convert.ToDouble(txtLat2.Text.ToString()); double lon1 = Convert.ToDouble(txtLong1.Text.ToString()); double lon2 = Convert.ToDouble(txtLong2.Text.ToString()); var R = 6378.137; // Rad
18 2024-04-26
编程技术问答社区
C# 在图形中的一组点的中心
我有一个用于使用X和Y坐标的游戏机器人的导航系统.为了了解我的角色的移动方式,我有一个简单的图纸表面1000 * 1000,我在上面绘制了路径.然后,我可以将鼠标悬停在路径中的任何节点上并获取其详细信息. 转换坐标的代码,例如60.75,73.13就是简单地转换为ints.这使一个荒谬的图像变得可笑,所以我乘以10,但仍未使用可用的空间. foreach (Node spot in path) { Point point = new Point(); point.X = Convert.ToInt32(spot.X * 10); point.Y = Convert.ToInt32(spot.Y * 10); NodeSpot dot = new NodeSpot() {
22 2024-04-26
编程技术问答社区
如何在C#中计算自定义CRC
im试图找出CRC1代码插入,在此处使用@mark Adler弄清楚CRC算法:CRC1具有反向0x1021 Poly,Init 0,Final Xor 0. 我如何确定这种校验和模式? 我在这里找到了CRC1样本: 之后,我试图检查C#上的代码,没有运气,我发送了512个字节软件包,首先是BYTE是0x01所有其他字节都是零,: private void button2_Click(object sender, EventArgs e) { byte[] sendBuffer= { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0
10 2024-04-26
编程技术问答社区
如何使用线条渲染器绘制从A点到B点的正弦波
以下private void Update() { if (Input.GetMouseButtonDown(0)) { Vector3 newPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); newPos.z = 0; CreatePointMarker(newPos); GenerateNewLine(); } } private void CreatePointMarker(Vector3 pointPosition) { Instantiate(linePointPrefab, pointPosition, Quaternion.identity); } private void GenerateNewLine() { GameObject[] allPoints = GameObject.FindGameObjectsWithTag("PointMarker"); Vector3[] allPointPosit
8 2024-04-26
编程技术问答社区
如何在运动中射击物体?
请参阅下面的图像: 黑人抛光是我的船和我的敌人的红圈(半径1.2).两者都在没有加速的情况下运动.我需要精确地杀死红色圆圈,我只能使用线性速度,位置和半径数据使用什么类型的计算? 注意:子弹的寿命为0.5,速度40和半径为0.2 我正在尝试在C#中实现此目标. public static Vector3 CalculatePreciseShootDirection(Vector3 shipPosition, Vector3 shipVelocity, Vector3 targetPosition, Vector3 targetVelocity, float bulletLifetime, float bulletSpeed)
24 2024-04-26
编程技术问答社区
进行连续检查
我必须执行逻辑,如果一个数字比另一个数字大x倍. // The distance between two candles var distance = Math.Abs(firstAggregationUpperValue - currentCandleUpperValue); // How many times is the distance bigger than firstAggregationDifference var times = distance / firstAggregationDifference; 我必须执行以下检查times: 7或以上和以下9(时代> = 7 && times 9或以上和以下12(时代> = 9 && times 12或以上和以下16(时代> = 12 && times 等. 假设时间大于3倍,序列为:4-> 2-> 3. 3 + 4 = 7(时代> = 7 && times 请注意4.下一个是+ 2.
10 2024-04-26
编程技术问答社区
在C#中是否有办法判断小数是终止的还是重复的?
可能的重复: 如何知道分数中的重复小数 有没有办法判断小数是终止还是重复? 示例: 我的分数:1/3,是重复的十进制-0.3333333333333333333333 我的分数为1/2,终止十进制-0.5 我不知道该怎么做. 解决方案 根据 wikipedia ,如果可以在其中表示,则分数是终止的k/(2^n * 5^m)的形式,其中k,n和m是整数. #assumes that the fraction is already fully reduced #e.g. numerator and denominator are coprime function isTerminating(numerator, denominator): while denominator % 2 == 0: denominator /= 2 while denominator % 5 == 0: denominator /=
10 2024-04-25
编程技术问答社区
如何检测点云中有多少个起伏
从实时信号宣传中,我得到了8400点,我需要将它们绘制. 我的问题是,数据中有很多噪音,是否有藻类降低噪声? 我需要知道有多少个"高原"? 类似的东西: 解决方案 您可以通过计算范围的滑动窗口(最大值减去最小值)来隔离高原.观察所得信号,看看哪个阈值会区分. 下面是您通过水平形态侵蚀获得的,然后垂直计数白色像素.高原之间的斜率非常独特. 分割云后,安装高原很容易. 其他解决方案 我将: 计算pcl的bbox或obb 如果您的PCL可以使用任何方向使用 obb obb 或简单地找到PCL中的2个最遥远的点,并将其用作主要方向. 按Axis(Bbox或obb的最大一面)对PCL的Bbox专业进行排序 如果您的数据始终与您可以跳过#1相同的方向,则仅通过 来对准方向 dot(pnt[i]-p0,p1-p0) 其中p0,p1是obb或pcl中大多数遥远点的端点,pnt[i]是您的pcl的点. 使用滑动平均值来过滤噪声 因此,
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
编程技术问答社区
旋转-当达到所需的角度时寻找
情况 我已经在这个问题上遇到了一段时间.基本上,我有一个角度 r (弧度),我想更改为所需的角度 wr (弧度)在模拟的每个步骤中,使用设定的速度 DR (弧度/秒).因此,我需要每个步骤,我都有一个新的角度 nr ,其中 nr = r + dr * dt 和 dt 是三角洲时间从最后一步开始. 角度位于空间[-pi,pi]中,三角角是由最短的转弯方式确定的.对于每个步骤,将增量角添加到电流旋转中,包裹在[-pi,pi]中并存储为新角度. 由于我的步骤中没有无限的精度,因此我显然会 - 实际上 - 从未直接打开所需的角度,因此我需要找到何时达到所需的旋转 - 并越过 - 然后停止旋转并将角度设置为所需的角度.在伪代码: if rotationSpeed!= 0 angle = WrapRotation(angle + rotationSpeed * deltaTime) if desiredAngle has been reached or c
12 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显然是错误的). 有人知道我如何计算该向量
14 2024-04-25
编程技术问答社区
两个双倍值相加时的算术错误
可能的重复: 浮点inccuracy示例 java 我在试图调试一个分类程序时抓住了这个问题,该程序检查两个值是否相等.获得值只是在两个双变量上进行一些添加:0.31 + 0.27. 当将这两个与其他物体的总和也等于0.58的总和相比时,它告诉我比较并不相等.查看第一个对象的总和,我看到它列出为0.58000000000000007.想知道这是否是我的代码,我创建了一个简单的控制台应用来测试它: static void Main(string[] args) { double val1 = .31; double val2 = .27; Console.WriteLine("Value 1: " + val1); Console.WriteLine("Value 2: " + val2); double added = val1 + val2; if (!a
14 2024-04-25
编程技术问答社区