示例#1
0
        public Sticker(char color, CoordPair Start, double angle, bool cornerSize, SkewbImageProp properties)
        {
            /// <summary>
            /// Constructs corner.
            /// </summary>

            Color = properties.ColorScheme.GetFace(color);
            SetCoord(Start, angle, cornerSize, properties);
        }
示例#2
0
        private void SetCoord(CoordPair Start, double angle, bool cornerSize, SkewbImageProp properties)
        {
            var tempCoordinates = new List <CoordPair>();

            var cornerDist = properties.ShortFaceDist;

            tempCoordinates.Add(Start);

            tempCoordinates.Add(CoordPair.CartesianFromPolar(cornerDist, angle, Start));

            tempCoordinates.Add(CoordPair.CartesianFromPolar(cornerDist, angle - (cornerSize ? Math.PI * 120 / 180 : Math.PI * 60 / 180), Start));

            Coordinates = tempCoordinates.ToArray();
        }
示例#3
0
        public Sticker(char color, Sticker[] corners, SkewbImageProp properties)
        {
            /// <summary>
            /// Constructs center from array of surrounding corners.
            /// </summary>

            Color = properties.ColorScheme.GetFace(color);
            var tempCoordinates = new List <CoordPair>();

            foreach (var corner in corners)
            {
                tempCoordinates.Add(corner.Coordinates.Last());
            }

            Coordinates = tempCoordinates.ToArray();
        }
示例#4
0
        }                                       // last sticker is the center

        public Face(char[] stickersColors, double angle, CoordPair start, SkewbImageProp properties)
        {
            var tempStickers = new List <Sticker>();

            var large = true;

            foreach (var color in stickersColors.Take(4))
            {
                tempStickers.Add(new Sticker(color, start, angle, large, properties));
                start  = CoordPair.CartesianFromPolar(properties.LongFaceDist, angle, start);
                angle -= large ? Math.PI * 120 / 180 : Math.PI * 60 / 180;
                large  = !large;
            }

            tempStickers.Add(new Sticker(stickersColors.Last(), tempStickers.ToArray(), properties));
            Stickers = tempStickers.ToArray();
        }
示例#5
0
 public SkewbImage(SkewbImageConfiguration configs)
 {
     Properties = new SkewbImageProp(configs);
     CreateFacees(configs);
 }