Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Веб-программирование > ASP
Перезагрузить страницу Как нарисовать карту динамически раскрашивая ее в цвета
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
kovalvik kovalvik вне форума
Новичок
 
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.06.2006
По умолчанию Как нарисовать карту динамически раскрашивая ее в цвета - 05.12.2009, 13:42

есть задача нарисовать карту динамически раскрашивая ее в цвета. но когда я стал подходить к этому вопросу и чтото нарисовал, вышло, что асп рисует по каким то своим правилам.
PHP эту картинку нарисовал вот так,

а asp вот так.



точки по которым велась отрисовка одни и теже, но в аспе 1на область на другую не попадает. какие то апроксимации мне непонятные. кто знает как это решить?
вот код:
Код:
        string ConnectionString = SqlDataSource1.ConnectionString;

        SqlConnection con = new SqlConnection(ConnectionString);
        
        int CurrentWidth = 450;//(int)Math.Round(450 * MapScale, 1);
        int CurrentHegiht = 500;//(int)Math.Round(500 * MapScale, 1);
        
        Bitmap image = new Bitmap(CurrentHegiht, CurrentWidth);
        Graphics g = Graphics.FromImage(image);
        g.FillRectangle(Brushes.White, 0, 0, CurrentHegiht, CurrentWidth);
        //g.SmoothingMode = SmoothingMode.AntiAlias;
        g.DrawLine(Pens.Red, 0, 0, 5, 5);
        Font font = new Font("Impact", 20, FontStyle.Regular);
        
        con.Open();
        char[] delimiterChars = {','};
        String Sql = "SELECT reg_name, coords FROM dbo.reg WHERE okrug_id = '_cfo'";
        SqlCommand cmd = new SqlCommand(Sql, con);
        SqlDataReader reader = cmd.ExecuteReader();
        StringBuilder htmlString = new StringBuilder("");
        
        while (reader.Read())
        {
            
            string CurrentCoordsString = reader["coords"].ToString();
            
            string[] arrayCoords = CurrentCoordsString.Split(delimiterChars);
            int[] IntCurrentCoords = new int[arrayCoords.Length];
            for (int a = 0; a<arrayCoords.Length-1; a++)
            {
                IntCurrentCoords[a] = Convert.ToInt32(arrayCoords[a]);
         
            }
            
            Point[] CurvePoints = new Point[IntCurrentCoords.Length/2-1];
            int b = 0;
            for (int i = 2; i < (IntCurrentCoords.Length-1); i = i+2)
            {
                Point TempPoint = new Point(IntCurrentCoords[i], IntCurrentCoords[i-1]);
                CurvePoints[b] = TempPoint;
                b++;
            }
            g.FillPolygon(Brushes.Aqua, CurvePoints);

        }
        reader.Close();
        SqlDataReader reader1 = cmd.ExecuteReader();
        while (reader1.Read())
        {

            string CurrentCoordsString = reader1["coords"].ToString();

            string[] arrayCoords = CurrentCoordsString.Split(delimiterChars);
            int[] IntCurrentCoords = new int[arrayCoords.Length];
            for (int a = 0; a < arrayCoords.Length - 1; a++)
            {
                IntCurrentCoords[a] = Convert.ToInt32(arrayCoords[a]);
                

            }

           
            Point[] CurvePoints = new Point[IntCurrentCoords.Length / 2 - 1];
            int b = 0;
            for (int i = 2; i < (IntCurrentCoords.Length - 1); i = i + 2)
            {
                Point TempPoint = new Point(IntCurrentCoords[i], IntCurrentCoords[i - 1]);
                CurvePoints[b] = TempPoint;
                b++;
            }
            g.DrawLines(Pens.Black, CurvePoints);

        }

 

        image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
        reader1.Close();
        g.Dispose();
        image.Dispose();
        con.Close();
        // Создаем новое соединение с ConnectionString
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ноутбук не видит звуковую карту и сетевую карту Виталий7 Любые вопросы от новичков 2 11.05.2011 11:00
Как динамически назначить обработчик Rocky Visual C++ 10 07.10.2008 09:47
Как нарисовать карту в OpenGL Oblomok Программирование графики 4 22.10.2007 21:19
Как поменять Styles динамически just_vladimir Visual C++ 2 10.12.2006 22:06
Как сделать ActiveX динамически Dushik1 Visual C++ 1 06.05.2005 16:02
Как динамически создать TImage Flash Delphi 1 26.02.2005 18:46
Как нарисовать карту и двигать по ней мышкой etc Алгоритмы 5 11.09.2004 00:52
При выборе цвета в Pascale дает не те цвета deef Pascal 1 29.04.2004 20:28
Как динамически создать иконку kesha Delphi 3 28.04.2004 00:01
Как динамически создать таблицу kettle Java 12 05.04.2004 00:07
Как обращаться к Image динамически Anonymous C++ Builder 3 28.09.2003 01:55
Как динамически менять картинку Spoonman DHTML, JavaScript, VBScript 0 16.07.2003 14:43



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов