当前位置: 首页 > 知识库问答 >
问题:

从圆的每个部分检查

慕嘉茂
2023-03-14

我想把数个圆分成3个部分,从每个部分检查是否有点…这里的代码可是我没有,我该怎么检查呢?

int[] x = new int[3];
int[] y = new int[3];

for (int p = 0; p < Points.Count; p++ )
{
    Point po =(Point)points[p];

    for (int i = 1; i <= 3;i++ )
    {
         double angle = i * (360 / 3);
         x[i] = (int)(po.x + iTransmissionRadius * Math.Cos(convertToRadians(angle)));
         y[i] = (int)(po.y + iTransmissionRadius * Math.Sin(convertToRadians(angle)));
    }
}

共有1个答案

韩淇
2023-03-14

这就是你要的吗?

class Program
{
    static Random rnd=new Random();        

    static void Main(string[] args)
    {
        var points=new List<Point>();
        for(int i=0; i<100; i++)
        {
            points.Add(new Point(rnd.Next(100), rnd.Next(100)));
        }

        int iTransmissionRadius=6;

        var neighbors=FindClosestPoints(points).ToArray();
        // count = 100

        var has_neighbors_within_radius=neighbors.Zip(points, (A, B) => AreWithinRadius(A,B,iTransmissionRadius)).ToArray();
        // true or false if there is neighbor closer than radius
    }

    static double DistanceBetweenPoints(Point A, Point B)
    {
        return Math.Sqrt((A.X-B.X)*(A.X-B.X)+(A.Y-B.Y)*(A.Y-B.Y));
    }

    static bool AreWithinRadius(Point A, Point B, int radius)
    {
        return DistanceBetweenPoints(A,B)<=radius;
    }

    static IEnumerable<Point> FindClosestPoints(IEnumerable<Point> points)
    {
        return points.Select((A) =>
        {
            var list=points.ToArray();
            Array.Sort(list, (B,C)=> DistanceBetweenPoints(A,B).CompareTo(DistanceBetweenPoints(A,C)));
            return list.Skip(1).FirstOrDefault();
        });
    }

}
 类似资料:
  • 我到底需要在椭圆形矩形中设置什么,以及如何计算起始角和扫掠角? 我尝试了下面的代码:

  • 问题内容: 是否可以仅使用HTML5 / CSS3创建一个圆,该HTML5 / CSS3的边框仅在圆的一部分上延伸?如果没有,我可以使用什么技术来达到这种效果?我更喜欢使用纯DOM元素,但是如果需要的话,我可以在画布上绘画或生成SVG。 问题答案: 是的,有可能-看到这个: 演示_

  • 问题 你希望能够在特定的情况下检测出在数组中的每个元素。 解决方案 使用 Array.every (ECMAScript 5): evens = (x for x in [0..10] by 2) evens.every (x)-> x % 2 == 0 # => true Array.every 被加入到 Mozilla 的 Javascript 1.6 ,ECMAScript 5 标准。如果

  • 我想用在地图上画一个静态圆圈。当用户掐时,地图会放大/缩小。 我需要知道地图半径(与圆圈包含的面积相关),并相应地更改底部的seekbar。 有没有人知道一个解决方案,如何检索从左到右屏幕边缘的距离?我在谷歌地图API文档中没有找到任何东西。 类似于这样:

  • 我有字符串项目的列表,我正在尝试删除每个项目中的字符串部分,并用它创建新的列表。我可以使用下面的代码来实现它,但是我觉得会有更好的方法使用流API来处理这个问题。请让我知道是否有更好的方法可以解决这个问题 请参见下面的例子(为解释而简化) null Value1.1,Value1.2,Value1.5,Value1.6 Value2.1、Value2.2、Value2.5、Value2.6

  • 那么,我如何实现圆弧线的冲突检测呢?我必须使用Box 2d碰撞,还是可以使用矩形之类的其他方法? 顺便说一句,我讨厌box2d,因为我不了解其中的大部分内容,所以如果有一个解决方案排除box2d的话,我会非常感激。 黄色的弧线继续在黑色的圆圈上旋转。我如何在这里实现碰撞检测? 请帮忙!谢谢!