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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2008, 11:29   #1
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию Линия не утолщается

Как сделать так, что-бы, если я два раз нарисовал линию через Canvas в Image1 в одном и том же месте не создавался эффект ее утолщения?
Иллидан вне форума Ответить с цитированием
Старый 06.10.2008, 14:23   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

image1.Canvas.MoveTo(0,0);
image1.Canvas.LineTo(100,100);
Не вижу никакого утолщения при многократном повторе. Наверное координаты концов отличаются или режим рисования какой-нибудь используете?
eoln вне форума Ответить с цитированием
Старый 07.10.2008, 06:44   #3
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию

Да нет, вроде, обычный. Я рисую квадраты методом Rectangle и когда их сторны совпадают происходит утолщение.
Иллидан вне форума Ответить с цитированием
Старый 07.10.2008, 13:41   #4
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

рисуй квадрат как 4 линии.. указывая рпи этом их координаты.. немного мудрено, но если нормальным способом не оплучается делай так..
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 07.10.2008, 14:00   #5
AngelOfDeath
Delphi/C++/Asm
Форумчанин Подтвердите свой е-майл
 
Аватар для AngelOfDeath
 
Регистрация: 28.03.2008
Сообщений: 358
По умолчанию

У меня ничего не утолщается
Код:
with Image1 do
begin
Canvas.Rectangle(0,0,30,30);
Canvas.Rectangle(0,0,30,30);
end;
Попробуй Canvas.Polygon
Код:
Canvas.Polygon([Point(0,0),Point(100,0),Point(100,100),Point(0,100)]);
AngelOfDeath вне форума Ответить с цитированием
Старый 07.10.2008, 14:24   #6
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Если речь о разных прямоугольниках, которые расположены вплотную, то просто прямоугольник чертит стороны с внутренней стороны, поэтому надо смещать какие-нибудь 2 смежные стороны на 1 пиксель. Например так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i,j: integer;
begin
  for i := 0 to 5 do for j := 0 to 5 do begin
  image1.Canvas.Rectangle(20*i,20*j, 20*i+20, 20*j+20)//утолщение
  end;
  application.MessageBox('','');
  image1.Canvas.Refresh;
  for i := 0 to 5 do for j := 0 to 5 do begin
  image1.Canvas.Rectangle(20*i,20*j, 20*i+20+1, 20*j+20+1)//норма
  end
end;
eoln вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Линия тренда в гистограмме с накоплением Svett Microsoft Office Excel 1 18.08.2008 21:54
Прямая линия serres Общие вопросы Delphi 1 04.11.2007 18:33
Линия тренда в Excel egli Microsoft Office Excel 1 01.12.2006 14:24