Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
 
Якобинец
306 / 16 / 1
Регистрация: 26.01.2013
Сообщений: 336
#1

Рисование многоугольника - C++/CLI WinForms

30.10.2013, 15:26. Просмотров 707. Ответов 1
Метки нет (Все метки)

Пытаюсь нарисовать многоугольник при помощи функции Draw, передавая массив PointF, но ... на экране высвечивается странный рисунок, который бывает, когда выводишь что-то не то или слишком большое.
Ниже приведены фрагменты кода:

Добавлено через 4 минуты
Так я создаю точки в конструкторе формы:
PointF p1(100.0F , 100.0F);
PointF p2(200.0F , 100.0F);
PointF p3(200.0F , 200.0F);
PointF p4(100.0F , 200.0F);
workPar = gcnew TParallelogram(p1, p2, p3, p4);
drawComponents -> Add( workPar );
listComponentsCounter++;

вот класс параллелограмма
# pragma once

# include "drawingcomponents.h"

ref class TParallelogram : public DrawingComponents
{
public:
TParallelogram( PointF, PointF, PointF, PointF );
~TParallelogram(void);
virtual void draw( System:rawing::Graphics ^ g ) override;

private:
array<PointF>^ myPointArray; // = gcnew array<PointF>(4);
};

#include "StdAfx.h"
#include "TParallelogram.h"


TParallelogram::TParallelogram( PointF firstPoint, PointF secondPoint, PointF thirdPoint, PointF fourthPoint )
{
array<PointF>^ myPointArray = gcnew array<PointF> {firstPoint, secondPoint, thirdPoint, fourthPoint};

//кисть!!! - разные цвета!!!
}

TParallelogram::~TParallelogram(void)
{}

void TParallelogram::draw(System:rawing::Graphics ^ g)
{
Pen ^p = gcnew Pen(Color::White,2);
g->DrawPolygon(p, myPointArray);
SolidBrush^ mySolidBrush = gcnew SolidBrush(Color::Red);
g->FillPolygon(mySolidBrush, myPointArray);
}
Не понимаю, что сделано не правильно. Да, и ошибка именно в функции draw (когда комментил фрагмент - всё было прекрасно)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2013, 15:26
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Рисование многоугольника (C++/CLI WinForms):

Вычисление площади многоугольника (перевести с C++ и Delphi)
помогите пожалуйста перевести с с++ на Visual C++ . если можете помочь то...

Рисование на форме
Здравствуйте, пишу свой пейнт. Возник вопрос как подключить system.drawing ?...

pictureBox и рисование
Всем привет:). Сразу к делу8-): Есть программа, в которой я по клавише очищаю...

Рисование в С++/CLI
Добрый день, не могу докончить следующую задачу. Даны координаты...

VS C++ 2010 рисование
вот код, как сделать чтобы прямоугольник был закрашен, заранее благодарен??? ...

Рисование из центра PictureBox
Как сделать так, что бы изображение рисовалось из центра пикчаБокса ? а не из...

1
Якобинец
306 / 16 / 1
Регистрация: 26.01.2013
Сообщений: 336
04.11.2013, 11:33  [ТС] #2
Вопрос снят. Разобрался.
Была ошибка в том, что я неправильно инициализировал структуры. Я их сначала объявил в параметрах, а затем ещё и инициализировал в конструкторе формы. В итоге в конструктор класса попала хрень. Не повторяйте таких ошибок.

Добавлено через 12 часов 2 минуты
Хотя, нет - какие-то косяки с передачей в класс и последующим выводом ... надо разобраться
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2013, 11:33
Привет! Вот еще темы с решениями:

Рисование осей координат
Как нарисовать оси координат? и как изменить нуль этой оси? (а то в PictureBox...

Рисование с System::Drawing
Возникла проблема вывода в окно, допустим есть форма и я рисую: Form1(void) {...

Рисование треугольника , в pictureBox
Я строю треугольник тупо по координатам прямых и задаю только размер сторон....

Рисование линий в PictureBox
Решил, попробовать windows forms для нарисования графика функции, начал с...


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

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

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