2016-05-21 4 views
1

Was ich versuche zu tun, ist ein 5-zackiger Stern zu zeichnen. Ich habe die Koordinaten, aber ich glaube, ich vermisse die Breite und Höhe. Ich bin auf dem richtigen Weg, weil ich das Programm mit Code getestet habe, um ein Rechteck auszugeben, was ziemlich einfach war. der code warKoordinaten für einen fünfzackigen Stern in ASP.NET

g.DrawRectangle(new Pen(Color.Red), 50, 50, 50, 50); 

Aber für einen 5-zackigen Stern weiß ich einfach nicht, was die Breite und Höhe sein sollte. Ich würde mich über jede Hilfe freuen. Hier ist sie:

<%@ Page Language="C#" %> 
    <%@ Import Namespace="System.Drawing" %> 
    <%@ Import Namespace="System.Drawing.Imaging" %> 
    <script runat="server"> 
    void 
    Page_Load() 
    { 
    Response.ContentType = "image/jpeg"; 
    Response.Clear(); 
    Bitmap bitmap1 = new Bitmap(151, 151); 
    Graphics g = Graphics.FromImage(bitmap1); 
    g.Clear(Color.White); 
    Point[] points = { 
    new Point(28, 0), new Point(495, 55), new Point(514, 55), 
    new Point(520,40), new Point(526, 55), new Point(550, 55), 
    new Point(530, 65), new Point(540,85), new Point(520, 72), 
    new Point(500, 85), new Point(510, 65), new Point(495,55)}; 
    g.DrawLines(new Pen(Color.Black), points); 
    bitmap1.Save(Response.OutputStream, ImageFormat.Jpeg); 
    bitmap1.Dispose(); 
    g.Dispose(); 
    Response.Flush(); 
    } 
    </script> 

Bildschirm geschossen image

+0

Finden Sie Ihren max 'X' und 'Y' max – Jasen

+0

Ich glaube, Sie müssen zwei Punkte mit gleicher Höhe unten. zwei mit derselben höheren Höhe in der Mitte. und eine mit höherer Höhe und bei 0 Breite. –

+0

Was meinst du mit meinen Max (x, y)? Ich dachte, die Schlechten (28, 0) waren es. Warten Sie mal. Meinst du, ich muss w und h eine Dimension geben, um den x- und y-Koordinaten zu entsprechen. Das wäre überall die gleiche Breite und Höhe. Ich werde es versuchen und zurückkommen. Das ist vielleicht einfacher als ich dachte. – swydell

Antwort

1

Ihr Code bereits funktioniert, wie es ist. Sie müssen nur eine praktische Anordnung von Punkten verwenden. Für intance für eine 150x150 Bitmap:

protected void Page_Load(object sender, EventArgs e) 
    { 
     Response.ContentType = "image/jpeg"; 
     Response.Clear(); 
     Bitmap bitmap1 = new Bitmap(150, 150); 
     Graphics g = Graphics.FromImage(bitmap1); 
     g.Clear(Color.White); 
     Point[] points = { 
      new Point(75,0), 
      new Point(150,150), 
      new Point(0,50), 
      new Point(150,50), 
      new Point(0,150), 
      new Point(75,0) 
     }; 
     g.DrawLines(Pens.Black, points); 
     bitmap1.Save(Response.OutputStream, ImageFormat.Jpeg); 
     bitmap1.Dispose(); 
     g.Dispose(); 
     Response.Flush(); 
    } 

enter image description here