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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2012, 21:07   #1
ПИнасол
Пользователь
 
Регистрация: 26.02.2012
Сообщений: 32
Счастье гграфика в делфи

не могу никак сравнять штрихи на 0 ,чтобы по х и у они совпадали
помогите плиз
Код:
Procedure TFormMaid.FormPaint(Sender: TObject);
Var i:integer;
Begin
     x0:=FormMaid.Width div 3;
     y0:=FormMaid.Height div 3;
     l:=FormMaid.Width div 21;
     r:=FormMaid.Width - FormMaid.Width div 3 - FormMaid.Width div 21;
     u:=FormMaid.Height div 22;
     d:=FormMaid.Height - FormMaid.Height div 3 - FormMaid.Height div 20;
    with FormMaid.Canvas do begin
          Moveto(l,y0);
          Lineto(r,y0);
          Moveto(x0,u);
          Lineto(x0,d);
          Moveto(r,y0);
          Lineto(r-FormMaid.Width div 50,y0+FormMaid.Height div 50);
          Moveto(r,y0);
          Lineto(r-FormMaid.Width div 50,y0-FormMaid.Height div 50);
          Moveto(x0,u);
          Lineto(x0-FormMaid.Width div 90,u+FormMaid.Height div 30);
          Moveto(x0,u);
          Lineto(x0+FormMaid.Width div 90,u+FormMaid.Height div 30);
          m:=15;
          k:=23;
          xs:=round((r-l)/(k+1));
          ys:=round((d-u)/(m+1));
          for i:=1 to k do begin
              Moveto(l+xs*i,y0+FormMaid.Height div 80);
              Lineto(l+xs*i,y0-FormMaid.Height div 80);
          end;
          for i:=1 to m do begin
              Moveto(x0-FormMaid.Width div 130,u+ys*i);
              Lineto(x0+FormMaid.Width div 130,u+ys*i);
          end;
          Textout(r-FormMaid.Width div 50,y0+FormMaid.Height div 50,'x');
          Textout(x0-FormMaid.Width div 50,u+FormMaid.Height div 50,'y');
          FormMaid.Canvas.Ellipse(round(5*l),round(2.8*l),round(x0+2*l),
              round(y0+1.36*l));
     end;
End;

Последний раз редактировалось ПИнасол; 23.12.2012 в 22:07.
ПИнасол вне форума Ответить с цитированием
Старый 23.12.2012, 21:53   #2
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Чтобы "уравнять штрихи" нужно плясать от начала координат и с постоянными расстояниями ставить эти самые "штрихи".
А можно уточнить - что за код такой интересный?
Код:
...
x0:=l+r*(DIV 3);
y0:=u+d*(div3);
...
Компилятор не ругает? div - это ведь бинарная операция.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 23.12.2012, 22:07   #3
ПИнасол
Пользователь
 
Регистрация: 26.02.2012
Сообщений: 32
По умолчанию

это моя опечатка забыл закомментировать , хотел сделать так чтобы делилось все на равные количество.
напиши код плиз не совсем понял что ты хочешь сделать
ПИнасол вне форума Ответить с цитированием
Старый 23.12.2012, 22:28   #4
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Если абсцисса и ордината делят форму на 4 квадрата, то так
Код:
var 
Tp:TPoint;
i:integer;
....
Form1.ClientWidth:=400;
Form1.ClientHeigth:=400;
Tp.x:=Form1.ClientWidth div 2;
Tp.y:=Form1.ClientHeigth div 2;
// с центра формы вниз
i:=Tp.x+20;
while i<=Form1.ClientHeigth do
begin
Canvas.MoveTo(i,Tp.y-5);
Canvas.LineTo(i,Tp.y+5);
i:=i+20;
end;
// с центра формы вверх
i:=Tp.x-20;
while i>=0 do
begin
Canvas.MoveTo(i,Tp.y-5);
Canvas.LineTo(i,Tp.y+5);
i:=i-20;
end;
// с центра формы влево
i:=Tp.y-20;
while i>=0 do
begin
Canvas.MoveTo(Tp.x-5,i);
Canvas.LineTo(Tp.x+5,i);
i:=i-20;
end;
// с центра формы вправо
i:=Tp.y+20;
while i<=Form1.ClientWidth do
begin
Canvas.MoveTo(Tp.x-5,i);
Canvas.LineTo(Tp.x+5,i);
i:=i+20;
end;
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось Rin; 23.12.2012 в 22:31.
Rin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На делфи vadiprog Помощь студентам 1 24.10.2011 14:32
делфи poison777 Помощь студентам 2 20.11.2010 14:36
Делфи Vitalina69 Помощь студентам 0 16.11.2010 21:29
Делфи Nastyity Помощь студентам 5 25.04.2010 11:16
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? Mclaren Помощь студентам 2 27.04.2009 22:37