C# 如何计算水平罗盘上中间线的位置?

C# 如何计算水平罗盘上中间线的位置?,c#,horizontal-scrolling,C#,Horizontal Scrolling,我正在用C编写水平罗盘。我希望它像流行游戏中的罗盘一样,比如pub-g。“点计算”功能无法按我的要求工作。需要根据函数的值计算新点。如果该点小于零点,则其新位置将在最右边的点旁边。功能是 public void calculateTextPoints(Point[] points, int width, int height, object value, int multiplier, byte pixelForOneValue, int yAxesLength)

我正在用C编写水平罗盘。我希望它像流行游戏中的罗盘一样,比如pub-g。“点计算”功能无法按我的要求工作。需要根据函数的值计算新点。如果该点小于零点,则其新位置将在最右边的点旁边。功能是

    public void calculateTextPoints(Point[] points, int width, int height, object value, int multiplier, byte pixelForOneValue, int yAxesLength)
            {
                int tempXPoint = 0, valueToDecrease;
                Point centerPoint = new Point(0, 0);
                centerPoint.X = width / 2;
                centerPoint.Y = height / 2;

                //calculate positions before moving
                for (byte loop = 0; loop < points.Length; loop++)
                {
                        int xPoint = centerPoint.X - (multiplier * pixelForOneValue * ((points.Length / 2) - loop));
                        points[loop].X = xPoint;
                        points[loop].Y = centerPoint.Y / 2 + (yAxesLength);
                }
                   
                //calculate the positions how much have to move
                for (byte loop = 0; loop < points.Length; loop++)
                    {
                        valueToDecrease = ((int)value * pixelForOneValue);
                        valueToDecrease %= (width + (multiplier * pixelForOneValue));
                        tempXPoint = points[loop].X - valueToDecrease;
                        if (tempXPoint < 0)
                        {
                            tempXPoint = points[points.Length - 1].X + (multiplier * pixelForOneValue * (loop+1));
                            tempXPoint -= valueToDecrease;
                            points[loop].X = tempXPoint;
                        }
                        else
                        {
                            points[loop].X = tempXPoint;
                        }
                }
            }

另一个功能是在计算点上绘图。它根据在函数中输入的值对不同的值执行错误的操作。

您想用动画gif显示什么?请添加一个很好的描述1我们看到了什么2什么“不正确”3什么“预期”我想在Gif中显示的是点位置相对于值的偏差。虽然一开始不是问题,但在某个值之后会出现错误。在Gif的最后几秒钟,数值发生了微小的变化,这些点是偏差。您是否尝试使用查找问题?是的,我尝试过。我猜函数的计算是正确的,算法是完全错误的。你知道这种操作中使用的算法吗?很抱歉,我真的不知道使用的是什么算法。我不喜欢创造这样的东西。此外,由于变量名为value和pixelForOneValue,因此很难读取代码。我很惊讶在你的算法中没有看到360,而是一个圆圈中的数字。