Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

GDIPlus и динамический массив для многоугольника - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Метод Эйлера http://www.cyberforum.ru/cpp-beginners/thread1164869.html
Подскажите пожалуйста, первая модификация метода Эйлера- это усреднение или центрирование?
C++ Двунапревленный список вещественных чисел Господа, нужна ваша помощь. Нужно создать двунаправленный список элементов вещественного типа. Затем найти вещественное число введенное с клавиатуры и удалить его. Это нужно сделать, используя... http://www.cyberforum.ru/cpp-beginners/thread1164854.html
Не корректно выводит числа массива C++
Программа сортирует парные числа по возрастанию, а не парные по убыванию Но проблема в том что в консоле выводит числа типа -84215... хотя обращение к адресу вроде коректно #include <iostream>...
Наследование операторов C++
Пожалуйста, подскажите как правильно задать оператор например =, в базовом классе, а вызывать в классе потомке, на примере: Базовый Базовый::operator=(const Базовый &b) {... } Строка...
C++ Что за что отвечает в программе? Не могу разобраться http://www.cyberforum.ru/cpp-beginners/thread1164827.html
#include "stdafx.h" #include <iostream> #include <cstring> #include <math.h> using namespace std; int Proverka (int N) { int a; int b; int k=0; int k1=0;
C++ Чтение комплексных чисел из текстового файла В файле записаны комплексные числа в таком формате: 3.654+1.234*i 0.001-0*i 0+6.443*i 6.565-4.786*i -9.009+5.456*i 4.322+5.676*i Между собой разделены одиночным пробелом. Чисел в файле может... подробнее

Показать сообщение отдельно
kotgav
2 / 2 / 0
Регистрация: 13.07.2013
Сообщений: 62

GDIPlus и динамический массив для многоугольника - C++

03.05.2014, 17:53. Просмотров 375. Ответов 1
Метки (Все метки)

Нигде не нашел решения такой проблемы.
Имеются два вектора vector<int> с одинаковым количеством элементов ArrXY_SIZE:
один с координатами X, второй с координатами Y точек для рисования многоугольника Polygon.

Есть размер массива точек для рисования многоугольника:
const short ARR_Dst_SIZE = ArrXY_SIZE; // Размер динамического массива
Константа ArrXY_SIZE равна размеру векторов.

Есть определение массива Point ArrayDst[ARR_Dst_SIZE] = {Point(0,0)};

Есть функция FillPolygon(mBlueBrush, ArrayDst, ARR_Dst_SIZE);
Спрашивается - как надо или можно заполнить динамический массив ArrayDst элементами векторов, чтобы массив использовался для рисования многоугольника?
Я пытался сделать это с помощью цикла do while, но не могу понять как передать значения элементов массива из цикла в функцию FillPolygon?
Пытался создать двумерный вектор с вложением вектора Y в вектор X. Но функция FillPolygon не работает с векторами.

Добавлено через 3 часа 1 минуту
Дополню свой вопрос кодом:
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
// ============= Заполнение массива точек полигона одномерными векторами ===================
// Создаем одномерный вектор координаты X
std::vector<int>    ArrVecX;
// Инициализируем вектор X пятью точками
ArrVecX.push_back(100);
ArrVecX.push_back(200);
ArrVecX.push_back(150);
ArrVecX.push_back(50);
ArrVecX.push_back(0);
 
// Создаем одномерный вектор координаты Y
std::vector<int>    ArrVecY;
// Инициализируем вектор Y пятью точками
ArrVecY.push_back(100);
ArrVecY.push_back(130);
ArrVecY.push_back(200);
ArrVecY.push_back(200);
ArrVecY.push_back(130);
 
// --- Создаем массив, куда копируются элементы из векторов ---
const short ARR_Dst_SIZE = 5;
Point ArrayDst[] = {
    Point(ArrVecX[0],ArrVecY[0]),
    Point(ArrVecX[1],ArrVecY[1]),
    Point(ArrVecX[2],ArrVecY[2]),
    Point(ArrVecX[3],ArrVecY[3]),
    Point(ArrVecX[4],ArrVecY[4])};
 
// Рисуем полигон
g.FillPolygon(myNavyBlueBrush, ArrayDst, ARR_Dst_SIZE); // Рисуем полигон с синей заливкой
Этот фрагмент работает нормально.
В этом примере 5 точек в массиве, поэтому фрагмент:
C++
1
2
3
4
5
6
Point ArrayDst[] = {
    Point(ArrVecX[0],ArrVecY[0]),
    Point(ArrVecX[1],ArrVecY[1]),
    Point(ArrVecX[2],ArrVecY[2]),
    Point(ArrVecX[3],ArrVecY[3]),
    Point(ArrVecX[4],ArrVecY[4])};
можно написать прямо в тексте программы.
А если точек 10000 в векторах? Как сделать компактную запись такого массива, который инициализируется векторами с огромным количеством элементов?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru