コード例 #1
0
        private static bool PerOtr(Vector2 Seg1_N, Vector2 Seg1_K, Vector2 Seg2_N, Vector2 Seg2_K)
        {
            float x1 = Seg1_N.X;
            float y1 = Seg1_N.Y;
            float x2 = Seg1_K.X;
            float y2 = Seg1_K.Y;
            float x3 = Seg2_N.X;
            float y3 = Seg2_N.Y;
            float x4 = Seg2_K.X;
            float y4 = Seg2_K.Y;

            return (((x3 - x1) * (y2 - y1) - (y3 - y1) * (x2 - x1)) * ((x4 - x1) * (y2 - y1) - (y4 - y1) * (x2 - x1)) <= 0)
                && (((x1 - x3) * (y4 - y3) - (y1 - y3) * (x4 - x3)) * ((x2 - x3) * (y4 - y3) - (y2 - y3) * (x4 - x3)) <= 0);
        }
コード例 #2
0
        public static void DrawLens(DVector3 Position, Vector2 Size, Vector2 UVMin, Vector2 UVMax, Vector4 Color, TextureContainer Textur)
        {
            if (Textur == null) return;
            if (LastFreeIndex >= MassSize)
            {
                //resize
                MassSize = Utils.GetBinResize(LastFreeIndex + 1);
                System.Array.Resize(ref MasterRequest, MassSize);
                System.Array.Resize(ref SlaveRequest, MassSize);

                for (int i = LastFreeIndex; i < MassSize; i++)
                {
                    MasterRequest[i] = new Request();
                    SlaveRequest[i] = new Request();
                    ResizeVertex = true;
                }
            }

            MasterRequest[LastFreeIndex].Position = Position;
            MasterRequest[LastFreeIndex].Size = Size;
            MasterRequest[LastFreeIndex].UVMin = UVMin;
            MasterRequest[LastFreeIndex].UVMax = UVMax;
            MasterRequest[LastFreeIndex].Color = Color;
            MasterRequest[LastFreeIndex].Textur = Textur;

            LastFreeIndex++;
        }