【问题标题】:Coordinates For A 5-Pointed Star In ASP.NETASP.NET 中五角星的坐标
【发布时间】:2016-09-18 23:45:09
【问题描述】:

我要做的是画一个 5 角星。我得到了坐标,但我相信我缺少宽度和高度。我走在正确的轨道上,因为我使用代码测试了程序以输出一个矩形,这非常简单。代码是

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

但对于一个 5 角星,我只是不知道宽度和高度应该是多少。我会很感激任何帮助。 这里是:

 <%@ 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>

截图

【问题讨论】:

  • 找到你的最大值 x 和最大值 y
  • 我认为您需要在底部具有相同高度的两个点。中间高度相同的两个。一个高度更高,宽度为 0。
  • 找到我的 max(x, y) 是什么意思?我认为 pared (28, 0) 就是这样。坚持,稍等。你的意思是我必须给 w 和 h 一个维度来对应 x 和 y 坐标。所以这将是相同的宽度和高度。我会试试看,然后回来陪你。这可能比我想象的要容易。
  • 'System.Drawing.Point' 不包含采用 4 个参数的构造函数。我想那没有用。我所做的是(28,0,10,10);但它适用于矩形。为什么?为什么不使用我正在尝试创建的星形?
  • 尝试使用这些点并按顺序画线...Point(0, 60), Point(30, 0), Point(-30, 30), Point(30, 30), Point(-30, 0), Point(0,60)

标签: c# asp.net system.drawing


【解决方案1】:

您的代码已按原样运行。你只需要使用一个方便的点数组。例如,对于 150x150 位图:

 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();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 2018-04-03
    相关资源
    最近更新 更多