Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2012, 20:36   #1
Alek-de-Mik
Пользователь
 
Регистрация: 07.09.2012
Сообщений: 44
По умолчанию

Есть вот это:
Код:
public struct Quad
        {
            public Color color;
            public MyPoints.Points Normal;
            public Point[] Point2D;
            public MyPoints.Points[] Vertex;
        }//End Polygon
Оно компилируется, но не работает = ).
Нужно вот это:
Код:
public struct Quad
        {
            public Color color;
            public MyPoints.Points Normal;
            public Point[] Point2D = new Point[4];
            public MyPoints.Points[] Vertex = new MyPoints.Points[4] ;
        }//End Polygon
Оно вроде должно работать, но оно не компилируется = ((.
Подскажите, как быть и что делать?

Сделал вот так, но всё равно не работает. Help!
Код:
 public struct Quad
        {
            public Color color;
            public MyPoints.Points Normal;
            public Point[] Point2D;
            public MyPoints.Points[] Vertex;
            private Quad(Quad tmp, Color _color) 
            {
                color = _color;
                Normal = tmp.Normal;
                Point2D = new Point[4];
                Vertex = new MyPoints.Points[4]; 
            }
        }//End Polygon

Последний раз редактировалось Stilet; 06.11.2012 в 21:48.
Alek-de-Mik вне форума Ответить с цитированием
Старый 06.11.2012, 21:51   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Кто-нибудь что-нибудь понял?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2012, 22:14   #3
Alek-de-Mik
Пользователь
 
Регистрация: 07.09.2012
Сообщений: 44
По умолчанию

Окай, шас поясню = )
Когда компилирую первый вариант, то при использовании переменных выскакивает ошибка: "Ссылка на объект не указывает на экземпляр объекта."
Если же я объявляю размеры массива в структуре, что запрещено, то оно естественно не компилится = ) Это вариант 2
А 3 вариант это я нашел, что нужно создать конструктор, но я честно говоря не знаю, как нужно его использовать и задавать значения для массиво = (
Вот так вот = (
Alek-de-Mik вне форума Ответить с цитированием
Старый 06.11.2012, 22:51   #4
Alek-de-Mik
Пользователь
 
Регистрация: 07.09.2012
Сообщений: 44
По умолчанию

Всё, я разобрался, но появился другой вопрос, как отсортировать вот такой массив по переменной Normal.Z?

Код:
  public struct Points
        {
            public double X;
            public double Y;
            public double Z;
        }

public struct Quad
        {
            public Color color;
            public MyPoints.Points Normal;
            public Point[] Point2D;
            public MyPoints.Points[] Vertex;
        }

public static Quad[] Polygon = new Quad[6];//Массив Polygon[] нужно отсортировать по переменной Normal.Z
Помогите пожалуйста
Alek-de-Mik вне форума Ответить с цитированием
Старый 06.11.2012, 23:09   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Легко: Polygon.OrderBy(val => val.Normal.Z)
Эта операция даст отсортированный набор данных.
Ну а далее к примеру вывод на экран:
Код:
 foreach (Quad q in Polygon.OrderBy(val => val.Normal.Z)) Console.Write("{0}\n", q.Normal.Z);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2012, 23:20   #6
Alek-de-Mik
Пользователь
 
Регистрация: 07.09.2012
Сообщений: 44
По умолчанию

Код:
Polygon.OrderBy(val => val.Normal.Z);
            Pen pen = new Pen(Color.White);
            foreach (Quad q in Polygon.OrderBy(val => val.Normal.Z))
            {
                e.Graphics.FillPolygon(brush, q.Point2D);
                e.Graphics.DrawPolygon(pen, q.Point2D); 
            }
Вот так можно использовать?
/////
Блин, да что ж это за напасть!? Теперь всё работает но отрисовывается очень криво, я воопче не понимаю в чем проблема = )
Подскажите, какие могут быть подводные камни при использовании такой структуры как Polygon, мне почему-то кажется что я на него напоролся = )

Последний раз редактировалось Alek-de-Mik; 06.11.2012 в 23:29.
Alek-de-Mik вне форума Ответить с цитированием
Старый 07.11.2012, 12:50   #7
Alek-de-Mik
Пользователь
 
Регистрация: 07.09.2012
Сообщений: 44
По умолчанию

Разобрался, другой вопрос, а как сделать это
Код:
Polygon.OrderBy(val => val.Normal.Z)
, но в обратно порядке?
////
Усё, отбой = )

Последний раз редактировалось Alek-de-Mik; 07.11.2012 в 13:01.
Alek-de-Mik вне форума Ответить с цитированием
Старый 07.11.2012, 13:06   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Усё, отбой = )
Нашел метод Reverse видимо
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вниманию работников творческих профессий: Вот так вас оставят без денег VictorM Свободное общение 2 26.08.2012 13:36
Народ не получается с задачей в c++! Ни как не получается даже начать! дайте решение,хотя бы набросайте чего нибудь! sonat Помощь студентам 2 30.05.2012 08:27
<b>Осуществление ввода с клавиатуры без последующего подтверждения(без ENTER)</b> khorolpavel Общие вопросы C/C++ 2 30.12.2010 12:04
Найти подмножество! Без вас не найду) soleil Помощь студентам 1 19.01.2008 09:49
Я без вас не справлюзь - плиз нужна помощь! lioness_el Помощь студентам 0 30.11.2007 18:43