Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
2 / 2 / 1
Регистрация: 19.04.2011
Сообщений: 36
1

Как объединить несколько полигонов и создать из них один объект

29.08.2012, 10:26. Просмотров 2093. Ответов 5
Метки нет (Все метки)

Как объединить несколько полигонов(например острова), создать из них один объект, а потом добавить их так Karta.Children.Add(объект), или предложите свой способ, если знаете. И имеется массив точек и я знаю на каком элементе начинается новые полигоны. И все это добавить к Canvas.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2012, 10:26
Ответы с готовыми решениями:

Как создать несколько полигонов?
Есть код: Dim R As Integer Dim Pol As Point() = New Point() {} Private Sub...

Как объединить несколько 3g модемов что бы скорость с них суммировалась?
нужно что бы модемы как бы объеденили свои скорости в общий канал!возможно ли это?и как?

Как объединить несколько столбцов в один?
Нужно чтобы SQL запрос, из трёх атрибутов, сливал всё в одно. Допустим есть таблица...

Как объединить несколько запросов в один?
подскажите пожлалуйста как можно объеденить несколько запросов в один

5
32 / 30 / 7
Регистрация: 16.08.2012
Сообщений: 126
29.08.2012, 12:38 2
C#
1
List<Острова> island = new List<Острова>()
0
2 / 2 / 1
Регистрация: 19.04.2011
Сообщений: 36
29.08.2012, 12:42  [ТС] 3
C#
1
Polygon[] myPolygon = new Polygon[много];
, а можно так создавать массив полигонов? И как их потом загнать в List?
0
32 / 30 / 7
Регистрация: 16.08.2012
Сообщений: 126
29.08.2012, 12:48 4
списком всетаки лучше, и неограничен в размерах, и обращаться можно как к массиву
island[i]
1
2 / 2 / 1
Регистрация: 19.04.2011
Сообщений: 36
29.08.2012, 12:54  [ТС] 5
Спасибо как должно выглядеть? Примерно так?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
if (k == 5)//Полигон   
                    {
                        polygon = new Polygon();
                        polygon.Stroke = Brushes.Red;
                        
                        polygon.Fill = Brushes.LightSeaGreen;
                        double xMin,yMin,yMax;
                        xMin = dataIn.ReadDouble();
                        dataOut.Write("Координата точки по Xмин" + xMin); f = f + 8;
                        yMin = dataIn.ReadDouble();
                        dataOut.Write("Координата точки по Yмин" + yMin); f = f + 8;
                        g = dataIn.ReadDouble();
                        dataOut.Write("Координата точки по Хмакс" + g); f = f + 8;
                        yMax = dataIn.ReadDouble();
                        dataOut.Write("Координата точки по Yмакс" + yMax); f = f + 8;
 
                        k = dataIn.ReadUInt32();
                        dataOut.Write("Колич частей" + k); f = f + 4;
                        d = dataIn.ReadUInt32();
                        dataOut.Write("Колич точек" + d); f = f + 4;
 
                      
                        double[] NumParts = new double[k];
                        int[] FirstPoint = new int[k + 1];
                        for (int h = 0; h < k; h++)
                        {
                            e = dataIn.ReadUInt32();
                            dataOut.Write("Первя точка" + h + "части " + e); f = f + 4;
                            FirstPoint[h] = Convert.ToInt32(e);
 
                        }
                        FirstPoint[k] = Convert.ToInt32(d);
List<Polygon> island = new List<Polygon>();
                            
                        Polygon myPolygon = new Polygon();
 
                           for (int i = 0; i < k; i++)
                        { 
                            for (int h = FirstPoint[i]; h <= FirstPoint[i+1]; h++)
                            { 
                               
                                X1 = dataIn.ReadDouble();
                            dataOut.Write("Координата точки из множества по X" + X1); f = f + 8;
                            Y1 = dataIn.ReadDouble();
                            dataOut.Write("Координата точки из множества по Y" + Y1); f = f + 8;
                           
 
                                Point point = new Point();
                                point.X = (X1 - xMin) * zoomSlider.Value;
                                point.Y = (-Y1 + yMax) * zoomSlider.Value;
                              myPolygon.Points.Add(point); 
                            }
                            island.Add(myPolygon);
                        }
                        
                        Karta.Children.Add(island);
 
                    }
0
2 / 2 / 1
Регистрация: 19.04.2011
Сообщений: 36
31.08.2012, 11:31  [ТС] 6
Решил проблему, без объединения выкладываю вдруг кому-то пригодится

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
   if (k == 5)//Полигон   
                    {
                        
                       
                        double xMin, yMax;
                        xMin = dataIn.ReadDouble();
                        dataOut.Write("Координата точки по Xмин" + xMin); f = f + 8;
                        g = dataIn.ReadDouble();
                        dataOut.Write("Координата точки по Yмин" + g); f = f + 8;
                        g = dataIn.ReadDouble();
                        dataOut.Write("Координата точки по Хмакс" + g); f = f + 8;
                        yMax = dataIn.ReadDouble();
                        dataOut.Write("Координата точки по Yмакс" + yMax); f = f + 8;
 
                        k = dataIn.ReadUInt32();
                        dataOut.Write("Колич частей" + k); f = f + 4;
                        d = dataIn.ReadUInt32();
                        dataOut.Write("Колич точек" + d); f = f + 4;
 
 
                        double[] NumParts = new double[k];
                        int[] FirstPoint = new int[k + 1];
                        for (int h = 0; h < k; h++)
                        {
                            e = dataIn.ReadUInt32();
                            dataOut.Write("Первя точка" + h + "части " + e); f = f + 4;
                            FirstPoint[h] = Convert.ToInt32(e);
 
                        }
                        FirstPoint[k] = Convert.ToInt32(d);
                       
 
                        Polygon[] myPolygon = new Polygon[k];
                  
                        for (int i = 0; i < k; i++)
                        {  myPolygon[i] = new Polygon();  
 
                            myPolygon[i].Stroke = Brushes.Red;
                            myPolygon[i].Fill = Brushes.LightSeaGreen;
                            for (int h = FirstPoint[i]; h < FirstPoint[i + 1]; h++)
                            {
 
                                X1 = dataIn.ReadDouble();
                                dataOut.Write("Координата точки из множества по X" + X1); f = f + 8;
                                Y1 = dataIn.ReadDouble();
                                dataOut.Write("Координата точки из множества по Y" + Y1); f = f + 8;
 
 
                                Point point = new Point();
                                point.X = (X1 - xMin) * zoomSlider.Value;
                                point.Y = (-Y1 + yMax) * zoomSlider.Value;
                             
                                myPolygon[i].Points.Add(point);
                                  
                            }
                        Karta.Children.Add(myPolygon[i]);
                      
                        }
                          
                    }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2012, 11:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как объединить несколько Sitemap в один
MSN принимает только один файл Sitemap, a у меня их несколько. Может можно как то объединить ?

Как объединить несколько файлов в один
привет подскажите плиз как объединить данные из несколько типичных файлов xls и только из первого...

Как объединить несколько проектов в один?
Предположим есть несколько проектов винформ. Если сделать несколько проектов, то как объединить их...

Как несколько скриптов объединить в один
Такой вопрос: есть несколько скриптов: &lt;script type=&quot;text/javascript&quot;&gt; var htmlText =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.