C# 如何计算水平罗盘上中间线的位置?
我正在用C编写水平罗盘。我希望它像流行游戏中的罗盘一样,比如pub-g。“点计算”功能无法按我的要求工作。需要根据函数的值计算新点。如果该点小于零点,则其新位置将在最右边的点旁边。功能是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)
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,而是一个圆圈中的数字。