private void DrawLightRadius() { float realWidth = Utils.Metrics.Tilesize * 64; float stepX = realWidth / (64 * 17); float stepY = realWidth / (64 * 17); minimapControl1.Minimap.Dispose(); var newImg = InitialImage.Clone() as Bitmap; Graphics g = Graphics.FromImage(newImg); var iRadius = InnerRadius / stepX; var oRadius = OuterRadius / stepX; g.DrawEllipse(new Pen(Color.Orange, 3), new RectangleF(mLightPos.X / stepX - iRadius, mLightPos.Y / stepY - iRadius, iRadius * 2, iRadius * 2)); g.DrawEllipse(new Pen(Color.Red, 3), new RectangleF(mLightPos.X / stepX - oRadius, mLightPos.Y / stepY - oRadius, oRadius * 2, oRadius * 2)); minimapControl1.Minimap = newImg; }
public void SetInfo(DBC.MapEntry map, float lightX, float lightY) { mLightPos = new PointF(lightX, lightY); mEntry = map; try { ADT.Minimap minimap = new ADT.Minimap(map.InternalName, map.ID); InitialImage = minimap.CreateImage().Clone() as Bitmap; DrawLightPoint(lightX, lightY); minimapControl1.Minimap = InitialImage.Clone() as Bitmap; DrawLightRadius(); ContinentName = map.InternalName; minimapControl1.PointSelected += new SharpWoW.Controls.MinimapControl.PointSelectedDlg(_PointSelected); } catch (Exception) { Close(); } }