示例#1
0
 public void Draw(int thickness, Color color)
 {
     DUtility.DrawLine(rekt[0].To3D(), rekt[1].To3D(), thickness, color);
     DUtility.DrawLine(rekt[1].To3D(), rekt[3].To3D(), thickness, color);
     DUtility.DrawLine(rekt[2].To3D(), rekt[3].To3D(), thickness, color);
     DUtility.DrawLine(rekt[0].To3D(), rekt[2].To3D(), thickness, color);
 }
示例#2
0
        public void DrawRainbow(int thickness)
        {
            DUtility.DrawLine(rekt[0].To3D(), rekt[1].To3D(), thickness, Color.Red);
            DUtility.DrawLine(rekt[1].To3D(), rekt[3].To3D(), thickness, Color.Green);
            DUtility.DrawLine(rekt[2].To3D(), rekt[3].To3D(), thickness, Color.Blue);
            DUtility.DrawLine(rekt[0].To3D(), rekt[2].To3D(), thickness, Color.Yellow);

            DUtility.DrawLine(rekt[0].To3D(), rekt[3].To3D(), thickness, Color.Purple);
            DUtility.DrawLine(rekt[1].To3D(), rekt[2].To3D(), thickness, Color.SaddleBrown);
        }
示例#3
0
 public float Distance(Vector2 p)
 {
     if (Inside(p))
     {
         return(0);
     }
     if (ObjectManager.Player.Position.To2D().IsLeft(rekt[0], rekt[3]))
     {
         return(ObjectManager.Player.Position.To2D().IsLeft(rekt[1], rekt[2]) ? DUtility.LineToPointDistance2D(rekt[1], rekt[3], p) : DUtility.LineToPointDistance2D(rekt[0], rekt[1], p));
     }
     return(ObjectManager.Player.Position.To2D().IsLeft(rekt[1], rekt[2]) ? DUtility.LineToPointDistance2D(rekt[2], rekt[3], p) : DUtility.LineToPointDistance2D(rekt[0], rekt[2], p));
 }
示例#4
0
        public Rect(Vector2 start, Vector2 end, float width)
        {
            rekt = new Vector2[6];
            var l = DUtility.TranslateLine(start, end, width / 2);
            var r = DUtility.TranslateLine(start, end, -width / 2);

            rekt[0] = l[0];
            rekt[1] = l[1];
            rekt[2] = r[0];
            rekt[3] = r[1];
            rekt[4] = start;
            rekt[5] = end;
        }