Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2009, 17:59   #1
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию Криво работает polygon

Есть структура
Код:
struct TPoint
        {
        int x;
        int y;
        };
И есть вот этот код.
Код:
Canvas->Pen->Color=clBlack;
Canvas->Brush->Color=clGreen;
TPoint points[5];
points[0].x=50;
points[0].y=50;
points[1].x=150;
points[1].y=50;
points[2].x=150;
points[2].y=150;
points[3].x=50;
points[3].y=150;
points[4].x=50;
points[4].y=50;
Canvas->Polygon(points,5);
Теперь вопрос, откуда берется уходящая вдаль линия (причем,если не совместить начало и конец фигуры (что я по ошибке один раз сделал), то и из начала и из конца в бесконечность уходят линии.)
Изображения
Тип файла: jpg Непонятка.jpg (10.8 Кб, 164 просмотров)
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 06.02.2009, 00:27   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

я так понял что ты рисуеш прямоугольник?
Так у него 4 вершины, а у тебя задано аж 5 точек...
И еще вроде так должно быть
Код:
Canvas->Polygon(points,4);
http://www.cyberforum.ru/cpp-builder/thread6590.html
http://www.excode.ru/art7030p6.html
counter вне форума Ответить с цитированием
Старый 06.02.2009, 09:37   #3
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

В пособии написано что начало и конец должны совпадать, да и даже не в этом дело, даже если я рисую непонятно что, (т.е. начало и конец не совпадают) то такой глюк наблюдается. (непонятные линии исходят из первой и последней точек.)
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 06.02.2009, 16:20   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,619
По умолчанию

Тебе надо писать именно 4 точки в функции рисования полигона. Последнюю он не считает.
MaTBeu вне форума Ответить с цитированием
Старый 06.02.2009, 16:35   #5
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

т.е. должно выглядеть так?
Код:
Canvas->Pen->Color=clBlack;
Canvas->Brush->Color=clGreen;
TPoint points[5];
points[0].x=50;
points[0].y=50;
points[1].x=150;
points[1].y=50;
points[2].x=150;
points[2].y=150;
points[3].x=50;
points[3].y=150;
points[4].x=50;
points[4].y=50;
Canvas->Polygon(points,4);
или последнюю точку совсем убрать?
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 06.02.2009, 20:54   #6
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,619
По умолчанию

Так как вы написали.
И еще совет, как сократить ваш код.
Вместо
Код:
Canvas->Pen->Color=clBlack;
Canvas->Brush->Color=clGreen;
TPoint points[5];
points[0].x=50;
points[0].y=50;
points[1].x=150;
points[1].y=50;
points[2].x=150;
points[2].y=150;
points[3].x=50;
points[3].y=150;
points[4].x=50;
points[4].y=50;
Canvas->Polygon(points,4);
Напишите
Код:
Canvas->Pen->Color=clBlack;
Canvas->Brush->Color=clGreen;
TPoint points[5];
points[0]=TPoint(50, 50);
points[1]=TPoint(150, 50);
points[2]=TPoint(150, 150);
points[3]=TPoint(50, 150);
points[4]=TPoint(50, 50);
Canvas->Polygon(points,4);
Так строк в два раза меньше.
MaTBeu вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не работает тег align=right?valign работает а align нет! aviv HTML и CSS 5 21.01.2009 17:46
Проблема с UserForm. То работает, то НЕ работает Maxx Microsoft Office Excel 6 19.11.2008 14:51
Canvas.Polygon Sibedir Общие вопросы Delphi 2 18.01.2008 14:36
Не работает try except!!! Radost БД в Delphi 17 03.06.2007 11:07