Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с канвой, параллелограмм 
:(
    Опции темы
rthsobakas
Дата 4.12.2008, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



Как нарисовать параллелограм и его закрасить?  Есть ф-ция ректангле для нарисования прямоугольника, а что там за параллелограм? ЗС
PM   Вверх
mrbrooks
Дата 4.12.2008, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



rthsobakas, можно по точкам построить используя методы канвы - MoveTo и LineTo
PM MAIL   Вверх
rthsobakas
Дата 4.12.2008, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



а как тогда эту область потом закрасить(внутри линий)?
PM   Вверх
rthsobakas
Дата 4.12.2008, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



если

Код

   Form2->PaintBox1->Canvas->Pen->Color=clYellow;
   Form2->PaintBox1->Canvas->Brush->Color=clGreen;
   //Form2->PaintBox1->Canvas->MoveTo(10,10);
   //Form2->PaintBox1->Canvas->LineTo(10,100);
   //Form2->PaintBox1->Canvas->MoveTo(10,100);
   //Form2->PaintBox1->Canvas->LineTo(100,100);
   //Form2->PaintBox1->Canvas->MoveTo(100,100);
   //Form2->PaintBox1->Canvas->LineTo(100,10);
   //Form2->PaintBox1->Canvas->MoveTo(100,10);
   //Form2->PaintBox1->Canvas->LineTo(10,10);
   Form2->PaintBox1->Canvas->Rectangle(10,10,100,100);


То ректангле закрасит

Если раскоментрировать линии то облать в линиях не закрасит
PM   Вверх
mrbrooks
Дата 4.12.2008, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



На форме
Код

Canvas->Pen->Color = clRed;
Canvas->Pen->Width = 3;
Canvas->MoveTo(300,100);
Canvas->LineTo(100,200);
Canvas->LineTo(300,200);
Canvas->LineTo(500,100);
Canvas->LineTo(300,100);
Canvas->Brush->Color = clBlack;
Canvas->FloodFill(303,103,clRed,fsBorder);


В принципе LineTo и MoveTo - можно заменить методом Poligon - только что прийдется заполнять массив TPoint
PM MAIL   Вверх
rthsobakas
Дата 4.12.2008, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



ммм, закрасилось. Но когда в цикле делаешь он маргает и не особо видно что закрашена область.
PM   Вверх
mrbrooks
Дата 4.12.2008, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



rthsobakas, рисуешь в OnPaint формы?
PM MAIL   Вверх
586
Дата 4.12.2008, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 57
Всего: 146



Код
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TPoint pts[] = {
        TPoint(22+20, 18),
        TPoint(22+100+20, 18),
        TPoint(22+100, 18+80),
        TPoint(22, 18+80)
    };

    Canvas->Brush->Color = clWhite;
    Canvas->Polygon(pts, sizeof(pts) / sizeof(TPoint) - 1);
}

отступ слева 22 пикселя
отступ сверху 18 пикселей
длина 100 пикселей
высота 80 пикселей
горизонтальный наклон +20 пикселей

Это сообщение отредактировал(а) 586 - 4.12.2008, 18:15
PM   Вверх
rthsobakas
Дата 9.12.2008, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

Репутация: нет
Всего: -1



mrbrooks, 
Цитата

рисуешь в OnPaint формы?

нет, у меня отдельная ф-ия прорисовки print1();
что сделать чтобы не моргал?весь код процедуры что ли в репэинт отправить а в саму ф-ию
 TForm2::PaintBox1Paint; написать?
Не помогает

Это сообщение отредактировал(а) rthsobakas - 9.12.2008, 19:19

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  lab2kg.rar 603,41 Kb
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0629 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.