コード例 #1
0
				internal static int GetHits(Vector2 end, double range, float angle, List<Vector2> points) {
					return (from point in points
							let edge1 = end.Rotated(-angle / 2)
							let edge2 = edge1.Rotated(angle)
							where
								point.Distance(new Vector2(), true) < range * range && edge1.CrossProduct(point) > 0 &&
								point.CrossProduct(edge2) > 0
							select point).Count();
				}
コード例 #2
0
            internal static int GetHits(Vector2 end, double range, float angle, List<Vector2> points)
            {
                var result = 0;
                foreach (var point in points)
                {
                    var edge1 = end.Rotated(-angle / 2);
                    var edge2 = edge1.Rotated(angle);
                    if (point.Distance(new Vector2(), true) < range * range && edge1.CrossProduct(point) > 0 &&
                        point.CrossProduct(edge2) > 0)
                    {
                        result++;
                    }
                }

                return result;
            }