private static void SaveToBmp(List <Circle3D> projected) { int size = 2000; Bitmap image = new Bitmap(size, size); double b = 5.0; ImageSpace i = new ImageSpace(size, size); i.XMin = -b; i.XMax = b; i.YMin = -b; i.YMax = b; float scale = 0.5f; using (Graphics g = Graphics.FromImage(image)) { for (int m = 0; m < projected.Count; m++) { using (Pen p = new Pen(projected[m].Color, scale * 3.0f)) { Circle c = projected[m].ToFlatCircle(); if (c.IsLine) { DrawUtils.DrawLine(-c.P2 * 25, c.P2 * 25, g, i, p); // XXX - not general. } else { DrawUtils.DrawCircle(c, g, i, p); } } } } image.Save("outerCircles.png"); }
/// <summary> /// This is here to keep our coordinates consistent after resizing and zooming. /// </summary> public void UpdateImageSpace() { m_iSpace = new ImageSpace(m_glControl.Width, m_glControl.Height); double aspect = (double)m_glControl.Width / m_glControl.Height; m_iSpace.XMax = aspect * m_viewScale; m_iSpace.XMin = -aspect * m_viewScale; m_iSpace.YMax = m_viewScale; m_iSpace.YMin = -m_viewScale; }
private void DrawMirrors(Bitmap image, Settings settings) { double b = settings.Bounds; ImageSpace i = new ImageSpace(settings.Width, settings.Height); i.XMin = -b; i.XMax = b; i.YMin = -b; i.YMax = b; float scale = 2; List <Sphere> toDraw = new List <Sphere>(); toDraw.AddRange(settings.Mirrors); //toDraw.Add( AlteredFacetForTrueApparent2DTilings( settings.Mirrors ) ); using (Graphics g = Graphics.FromImage(image)) using (Pen p = new Pen(Color.Red, scale * 3.0f)) //using( Pen p2 = new Pen( Color.FromArgb( 255, 255, 214, 0 ), 3.0f ) ) using (Pen p2 = new Pen(Color.Orange, scale * 3.0f)) using (Pen p3 = new Pen(Color.Orange, scale * 3.0f)) for (int m = 0; m < toDraw.Count; m++) { Sphere s = toDraw[m]; Circle c = H3Models.UHS.IdealCircle(s); // XXX - not correct if (c.IsLine) { DrawUtils.DrawLine(-c.P2 * 25, c.P2 * 25, g, i, p); // XXX - not general. } else { Sphere temp = H3Models.BallToUHS(s); DrawUtils.DrawCircle(new Circle { Center = temp.Center, Radius = temp.Radius }, g, i, m == 0 ? p2 : m == 4 ? p3 : p); } /* // iii * Circle c = new Circle(); * c.Radius = Math.Sqrt( 2 ); * c.Center = new Vector3D( 1, Math.Sqrt( 2 ) ); * DrawUtils.DrawCircle( c, g, i, p ); * c.Center = new Vector3D( -1, Math.Sqrt( 2 ) ); * DrawUtils.DrawCircle( c, g, i, p ); * c.Center = new Vector3D( Math.Sqrt( 2 ) - 1, 0 ); * c.Radius = 2 - Math.Sqrt( 2 ); * DrawUtils.DrawCircle( c, g, i, p ); * * DrawUtils.DrawLine( new Vector3D( -2, 0 ), new Vector3D( 2, 0 ), g, i, p ); */ } }
public static void GenImage2() { int size = 10000; Bitmap image = new Bitmap(size, size); ImageSpace iSpace = new ImageSpace(size, size); double b = 1.0; iSpace.XMin = 0; iSpace.XMax = b; iSpace.YMin = 0; iSpace.YMax = b; Vector3D cen = HoneycombPaper.InteriorPointBall; cen = H3Models.BallToUHS(cen); Sphere[] simplex = Simplex(ref cen); Sphere inSphere = InSphere(simplex); using (Graphics g = Graphics.FromImage(image)) { g.Clear(Color.White); int count = 75; double offset = b / count / 2; for (int i = 0; i < count; i++) { for (int j = 0; j < count; j++) { Vector3D center = new Vector3D(2 * offset * i, 2 * offset * j); Circle circ = new Circle { Center = center, Radius = offset * .85 }; using (Brush brush = new SolidBrush(Color.DarkBlue)) DrawUtils.DrawFilledCircle(circ, g, iSpace, brush); } } } image.Save("fundamental.png", ImageFormat.Png); }
public static void GenImage() { int size = 1000; Bitmap image = new Bitmap(size, size); ImageSpace i = new ImageSpace(size, size); double b = 1.1; i.XMin = -b; i.XMax = b; i.YMin = -b; i.YMax = b; Vector3D cen = HoneycombPaper.InteriorPointBall; cen = H3Models.BallToUHS(cen); Sphere[] simplex = Simplex(ref cen); Sphere inSphere = InSphere(simplex); using (Graphics g = Graphics.FromImage(image)) foreach (int[] reflections in AllCells()) { Sphere clone = inSphere.Clone(); foreach (int r in reflections) { clone.Reflect(simplex[r]); } Sphere ball = new Sphere(); Circle3D inSphereIdealBall = ball.Intersection(clone); Circle3D inSphereIdealUHS = H3Models.BallToUHS(inSphereIdealBall); Circle inSphereIdeal = new Circle { Center = inSphereIdealUHS.Center, Radius = inSphereIdealUHS.Radius }; using (Brush brush = new SolidBrush(Color.Blue)) DrawUtils.DrawFilledCircle(inSphereIdeal, g, i, brush); } image.Save("threefifty.png", ImageFormat.Png); }
public static Record CreateRecord(string Tag) { Record outRecord; switch (Tag) { case "TES4": outRecord = new Header(); break; case "GMST": outRecord = new GameSetting(); break; case "TXST": outRecord = new TextureSet(); break; case "MICN": outRecord = new MenuIcon(); break; case "GLOB": outRecord = new GlobalVariable(); break; case "CLAS": outRecord = new Class(); break; case "FACT": outRecord = new Faction(); break; case "HDPT": outRecord = new HeadPart(); break; case "HAIR": outRecord = new Hair(); break; case "EYES": outRecord = new Eyes(); break; case "RACE": outRecord = new Race(); break; case "SOUN": outRecord = new Sound(); break; case "ASPC": outRecord = new AcousticSpace(); break; case "MGEF": outRecord = new MagicEffect(); break; case "SCPT": outRecord = new Script(); break; case "LTEX": outRecord = new LandscapeTexture(); break; case "ENCH": outRecord = new ObjectEffect(); break; case "SPEL": outRecord = new ActorEffect(); break; case "ACTI": outRecord = new ESPSharp.Records.Activator(); break; case "TACT": outRecord = new TalkingActivator(); break; case "TERM": outRecord = new Terminal(); break; case "ARMO": outRecord = new Armor(); break; case "BOOK": outRecord = new Book(); break; case "CONT": outRecord = new Container(); break; case "DOOR": outRecord = new Door(); break; case "INGR": outRecord = new Ingredient(); break; case "LIGH": outRecord = new Light(); break; case "MISC": outRecord = new MiscItem(); break; case "STAT": outRecord = new Static(); break; case "SCOL": outRecord = new StaticCollection(); break; case "MSTT": outRecord = new MoveableStatic(); break; case "PWAT": outRecord = new PlaceableWater(); break; case "GRAS": outRecord = new Grass(); break; case "TREE": outRecord = new Tree(); break; case "FURN": outRecord = new Furniture(); break; case "WEAP": outRecord = new Weapon(); break; case "AMMO": outRecord = new Ammunition(); break; case "NPC_": outRecord = new NonPlayerCharacter(); break; case "CREA": outRecord = new Creature(); break; case "LVLC": outRecord = new LeveledCreature(); break; case "LVLN": outRecord = new LeveledNPC(); break; case "KEYM": outRecord = new Key(); break; case "ALCH": outRecord = new Ingestible(); break; case "IDLM": outRecord = new IdleMarker(); break; case "NOTE": outRecord = new Note(); break; case "COBJ": outRecord = new ConstructibleObject(); break; case "PROJ": outRecord = new Projectile(); break; case "LVLI": outRecord = new LeveledItem(); break; case "WTHR": outRecord = new Weather(); break; case "CLMT": outRecord = new Climate(); break; case "REGN": outRecord = new Region(); break; case "NAVI": outRecord = new NavigationMeshInfoMap(); break; case "DIAL": outRecord = new DialogTopic(); break; case "QUST": outRecord = new Quest(); break; case "IDLE": outRecord = new IdleAnimation(); break; case "PACK": outRecord = new Package(); break; case "CSTY": outRecord = new CombatStyle(); break; case "LSCR": outRecord = new LoadScreen(); break; case "ANIO": outRecord = new AnimatedObject(); break; case "WATR": outRecord = new Water(); break; case "EFSH": outRecord = new EffectShader(); break; case "EXPL": outRecord = new Explosion(); break; case "DEBR": outRecord = new Debris(); break; case "IMGS": outRecord = new ImageSpace(); break; case "IMAD": outRecord = new ImageSpaceAdapter(); break; case "FLST": outRecord = new FormList(); break; case "PERK": outRecord = new Perk(); break; case "BPTD": outRecord = new BodyPartData(); break; case "ADDN": outRecord = new AddonNode(); break; case "AVIF": outRecord = new ActorValueInformation(); break; case "RADS": outRecord = new RadiationStage(); break; case "CAMS": outRecord = new CameraShot(); break; case "CPTH": outRecord = new CameraPath(); break; case "VTYP": outRecord = new VoiceType(); break; case "IPCT": outRecord = new Impact(); break; case "IPDS": outRecord = new ImpactDataSet(); break; case "ARMA": outRecord = new ArmorAddon(); break; case "ECZN": outRecord = new EncounterZone(); break; case "MESG": outRecord = new Message(); break; case "RGDL": outRecord = new Ragdoll(); break; case "DOBJ": outRecord = new DefaultObjectManager(); break; case "LGTM": outRecord = new LightingTemplate(); break; case "MUSC": outRecord = new MusicType(); break; case "IMOD": outRecord = new ItemMod(); break; case "REPU": outRecord = new Reputation(); break; case "RCPE": outRecord = new Recipe(); break; case "RCCT": outRecord = new RecipeCategory(); break; case "CHIP": outRecord = new CasinoChip(); break; case "CSNO": outRecord = new Casino(); break; case "LSCT": outRecord = new LoadScreenType(); break; case "MSET": outRecord = new MediaSet(); break; case "ALOC": outRecord = new MediaLocationController(); break; case "CHAL": outRecord = new Challenge(); break; case "AMEF": outRecord = new AmmoEffect(); break; case "CCRD": outRecord = new CaravanCard(); break; case "CMNY": outRecord = new CaravanMoney(); break; case "CDCK": outRecord = new CaravanDeck(); break; case "DEHY": outRecord = new DehydrationStage(); break; case "HUNG": outRecord = new HungerStage(); break; case "SLPD": outRecord = new SleepDeprivationStage(); break; case "CELL": outRecord = new Cell(); break; case "WRLD": outRecord = new Worldspace(); break; case "LAND": outRecord = new GenericRecord(); break; case "NAVM": outRecord = new NavigationMesh(); break; case "INFO": outRecord = new DialogResponse(); break; case "REFR": outRecord = new Reference(); break; case "ACHR": outRecord = new PlacedNPC(); break; case "ACRE": outRecord = new PlacedCreature(); break; case "PGRE": outRecord = new PlacedGrenade(); break; case "PMIS": outRecord = new PlacedMissile(); break; default: Console.WriteLine("Encountered unknown record: " + Tag); outRecord = new GenericRecord(); break; } outRecord.Tag = Tag; return(outRecord); }