C# - 沿圆周的一小部分生成点

时间:2018-03-15 21:38:08

标签: c# algorithm collision-detection geometry

我有以下算法,它可以在圆周上为我的程序中的碰撞事件生成多个点。 (就我所知,这完全有效。)

        bool Collision_True = false;
        for (int Angle = 0; Angle <= 359; Angle += 5)
        {
            int X = (CentreX + (Radius * Math.Cos(Angle));
            int Y = (CentreY + (Radius * Math.Sin(Angle));
            Point point = new Point(X, Y);

            if (Collision_True == false)
            {
                Collision_True = Player_Collisions(point); 
            }
        }
        return Collision_True;

但是我想改变它,所以它只在圆圈的底部三分之一处生成点,我尝试更改for循环中的值,如下所示:

        for (int Angle = 120; Angle <= 240; Angle += 5)
        {
            ...
        }

但是产生的点仍然在圆圈的整个圆周上,而不仅仅是底部的三分之一。

有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:0)

您需要转换为弧度

class Controller {
    private $container;

    public function __construct($container) {
        $this->container = $container;
        // those 3 lines works well :
        $database = $this->container->get('db');
        $lieux = $database->query('SELECT * FROM Lieu');
        var_dump($lieux);
    }

    public function render(ResponseInterface $response, $file) {
        $this->container->view->render($response, $file);
    }
}