好的,我上了这门课
public sealed class LightSource
{
public readonly Point3D Source;
public readonly Point3D Direction;
public readonly float ConeAngle;
public List<Ray> Lights { get; private set; }
public const double MaxRadian = 2.0 * Math.PI;
public LightSource(Point3D source, Point3D direction, float coneAngle)
{
this.Source = source;
this.Direction = direction;
if (coneAngle <= 0 || coneAngle > LightSource.MaxRadian)
{
throw new ArgumentException("coneAngle <= 0 || coneAngle > LightSource.MaxRadian");
}
this.ConeAngle = coneAngle;
this.Lights = LightSource.GenerateLights(this.Source, this.Direction, this.ConeAngle);
}
public static List<Ray> GenerateLights(Point3D source, Point3D direction, float coneAngle)
{
//How would i do this?
}
}我如何实现GenerateLights方法来给出我的圆锥角内的光线列表。假设射线的数量是一个常数。谢谢。
发布于 2013-07-20 08:42:36
我不是专家,但只是给你一个起点:也许你可以放置一个垂直于你瞄准的方向的网格,并且只保留与方向夹角在coneAngle内的光线?
ASCII艺术:
+--+--+
| | |
+--+--+
direction | | |
staring point ----------------------> +--+--+
| | |
+--+--+
| | |
+--+--+假设网格垂直于“方向”矢量。
https://stackoverflow.com/questions/17757331
复制相似问题