Exemple #1
0
        public static void AskModelProps(ModelProps props)
        {
            Console.Clear();
            Console.WriteLine("Her er der 7 instillinger at komme igennem.");
            props.displayCenterOfRotation = AskBool("Her angives om man ønsker at tegne punktet der roteres omkring.", "Vis center rotations punkt");

            Console.WriteLine("\n");
            props.displayPoints = AskBool("Her angives om man ønsker at tegne modellens vertexer.", "Vis vertexer");

            Console.WriteLine("\n");
            props.displayFaces = AskBool("Her angives om man ønsker at tegne facaderne på modellen.", "Vis ansigter");

            Console.WriteLine("\n");
            props.displayLines = AskBool("Her angives om man ønsker at tegne 'linjer' mellem vertexerne, \nnogen typer modeller anvender dette istedet for ansigter.", "Vis linjer");


            Console.WriteLine("\n");
            props.rotateAmount = AskForFloatProperty("Her angives hvor meget man ønsker modellen skal roteres per billede tegnet.", "Rotations mængde", (float)(Math.PI / 8d));

            Console.WriteLine("");
            props.wFLineSize = AskForFloatProperty("Her angives hvor store man ønsker linjer.", "Linje tykkelse", 1);

            Console.WriteLine("");
            props.wFPointSize = AskForFloatProperty("Her angives hvor store man ønsker punkter.", "Punkt størrelse", 2);
        }
Exemple #2
0
        public static Model AskModel(ModelProps modelProps)
        {
            Console.Clear();
            Console.WriteLine("Dette er så en udvidelse af programmet, til at starte med kan du vælge om du vil \nprøve at projektere en kasse, et standard objekt eller et valgfrit objekt");
            Console.WriteLine("Skriv 'b' for at vælge kassen");
            Console.WriteLine("Skriv 'd' for at vælge det standard objekt");
            Console.WriteLine("Alle andre taster for at vælge et objekt selv");
            Console.Write("Skriv her: ");
            var whichA = Console.ReadKey();
            var which  = whichA.KeyChar;

            if (which == 'b')
            {
                return(GetBox(modelProps));
            }
            else if (which == 'd')
            {
                float    scale            = 0.002f;
                PointF3D translationToMid = new PointF3D(0, -500);
                PointF3D rotation         = new PointF3D(0, 0, (float)Math.PI);
                var      model            = OBJExtractor.GetModel(Path.GetFullPath(@"Files to try out\deer.obj"), translationToMid, rotation, scale);
                modelProps.rotateAmount  = Math.PI / 16d;
                modelProps.wFLineSize    = 1;
                modelProps.wFPointSize   = 2;
                modelProps.displayPoints = false;
                modelProps.displayFaces  = true;

                return(model);
            }
            else
            {
                Console.Clear();
                Console.WriteLine("Du har valgt at vælge selv. ");
                string path = AskForPath();
                Console.WriteLine("");
                float scale = AskForFloatProperty("Her angives modellens størrelse", "Scale", 1f);
                Console.WriteLine("");
                PointF3D translationToMid = AskForPoint3DProperty("Her angives hvor meget modellen skal skubbes for at rotationsaksen ligger i midten", new PointF3D());
                Console.WriteLine("");
                PointF3D rotation = AskForPoint3DProperty("Her angives modellen starts rotation i radianer, hvor x, y, og z er aksen den rotere omkring", new PointF3D());

                Console.WriteLine("");
                modelProps.rotateAmount = AskForFloatProperty("Her angives hvor meget man ønsker modellen skal roteres per billede tegnet.", "Rotations mængde", (float)(Math.PI / 8d));

                Console.Clear();
                Console.WriteLine("Super, vi prøver altså at vise fra denne sti: \n" + path + "\n");
                Console.WriteLine("Med scale: \n" + scale + "\n");
                Console.WriteLine("Med translator til rotations midtpunkt: \n" + translationToMid + "\n");
                Console.WriteLine("Og med starts rotation: \n" + translationToMid + "\n");

                Console.Write("Tryk en vilkårlig tast for at fortsætte");
                Console.ReadKey();
                return(OBJExtractor.GetModel(path, translationToMid, rotation, scale));
            }
        }
Exemple #3
0
        static void Main(string[] args)
        {
            var modelProps = new ModelProps();

Start:
            var model = AskModel(modelProps);

AfterAsking:
            Console.Clear();
            Console.WriteLine("Her er så selve SRP programet, det kan vises på de tre forskellige måder som er blevet programmeret");
            Console.WriteLine("Skriv 'k' for at projektere på Corsair Platinum K95 Tastaturet");
            Console.WriteLine("Skriv 'w' for at projektere i et Windows Forms vindue");
            Console.WriteLine("Skriv 'c' for at projektere i en konsol");
            Console.WriteLine("Skriv 'm' for at vælge en anden model");
            Console.WriteLine("Skriv 'p' for at ændre indstillinger på visning");

            while (true)
            {
                Console.Write("Skriv her: ");
                var which = Console.ReadKey().KeyChar;
                Console.WriteLine("");
                model.properties = modelProps;
                if (which == 'k')
                {
                    Different_Platforms.CUE.Projection.Main(model);
                }
                else if (which == 'w')
                {
                    Different_Platforms.WindowsForm.Projection.Main(model);
                }
                else if (which == 'c')
                {
                    Different_Platforms.Console.Projection.Main(model);
                }
                else if (which == 'm')
                {
                    goto Start;
                }
                else if (which == 'p')
                {
                    AskModelProps(modelProps);
                    goto AfterAsking;
                }
                else
                {
                    Console.Write("Ikke en af valgene, ");
                }
                Console.WriteLine("prøv noget andet");
            }
        }
Exemple #4
0
        public static Model GetBox(ModelProps modelProps)
        {
            //Dette er en simpel kasse
            PointF3D[] modelVertexes =
            {
                new PointF3D(-1,  1, -1), //Back upper left
                new PointF3D(1,   1, -1), //Back upper right
                new PointF3D(-1, -1, -1), //Back lower left
                new PointF3D(1,  -1, -1), //Back lower right

                new PointF3D(-1,  1, 1),  //Front upper left
                new PointF3D(1,   1, 1),  //Front upper right
                new PointF3D(-1, -1, 1),  //Front lower left
                new PointF3D(1,  -1, 1)   //Front lower right
            };

            PolyLine[] modelLines =
            {
                new PolyLine(0, 4),
                new PolyLine(1, 5),
                new PolyLine(2, 6),
                new PolyLine(3, 7)
            };

            PolyLine[] modelFaces =
            {
                new PolyLine(0, 1, 3, 2),                             //Front square
                new PolyLine(4, 5, 7, 6)                              //Back square
            };
            var m = new Model(modelVertexes, modelLines, modelFaces); //Skab modellen med sine vertexer

            modelProps.rotateAmount  = Math.PI / 256d;
            modelProps.wFLineSize    = 5;
            modelProps.wFPointSize   = 10;
            modelProps.displayPoints = true;
            return(m);
        }