Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > Delphi
Перезагрузить страницу Графический объект как с ним работать
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Egor123 Egor123 вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 05.06.2011
По умолчанию Графический объект как с ним работать - 05.06.2011, 00:50

Вот мой алгоритм!!

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin,Math, ExtCtrls;

type
Risunok= class(TObject)
xa,ya,xb,yb,xc,yc,xd,yd,xe,ye,ab,bc,cd,de:integer;
w,w1:real;
e,p,l,i,z,c,v,b,g,h:Integer;//координаты штриховки
procedure data;
procedure draw;
end;

type
TForm1 = class(TForm)//Описание формы и её объктов
Image1: TImage;
SpinEdit1: TSpinEdit;
btn1: TButton;
procedure SpinEdit1Change(Sender: TObject);
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
Ris1:Risunok;

implementation

{$R *.dfm}

procedure Risunok.data;//Процедура рисования кинематической схемы
begin
w:=Form1.spinedit1.Value*90;
xc:=round(form1.Image1.Width/2);
yc:=round(form1.Image1.Height/2);
ya:=yc;
ye:=yc;
ab:=180;
bc:=60;
cd:=60;
de:=180;
// вычисление координат точек определяющих положение механизма
xd:=xc+round(cd*cos(w));
yd:=yc-round(cd*sin(w));
yb:=yc+round(cd*sin(w));
xb:=xc-round(cd*cos(w));
xa:=xb+round(sqrt(sqr(ab)-sqr(yb-ya)));
xa:=xb-round(ab*cos(w1));
xe:=xd+round(de*cos(w1))
end;

procedure Risunok.draw;
begin
//рисование элементов системы на экране и подписи основных точек механизма
form1.image1.Picture:=nil;
with form1.Image1. Canvas do
begin
Pen.Style:=psSolid;
pen.Color:=clBlack;
Ellipse(xb-4,yb-4,xb+4,yb+4);
Ellipse(xa-4,ya-4,xa+4,ya+4);
Ellipse(xc-4,yc-4,xc+4,yc+4);
Ellipse(xd-4,yd-4,xd+4,yd+4);
Ellipse(xe-4,ye-4,xe+4,ye+4);
Polyline([Point(xc,yc),Point(xc-20,yc+25),Point(xc+20,yc+25),Point(xc,yc)]);
Rectangle(xa+25,ya+15,xa-25,ya-15);
MoveTo(ya-25,ya-25);
LineTo(220,ya-25);
LineTo(70,ya-25);
MoveTo(ya+25,ya+25);
LineTo(220,ya+25);
LineTo(70,ya+25);
Rectangle(xe+25,ye+15,xe-25,ye-15);
MoveTo(650,ye+23);
lineTo(495,ye+23);
LineTo(605,ye+23);
MoveTo(650,ye-23);
LineTo(495,ye-23);
LineTo(605,ye-23);
MoveTo(xa,ya);
LineTo(xb,yb);
MoveTo(xe,ye);
LineTo(xd,yd);
LineTo(xb,yb);
lineTo(xd,yd);
moveto(xb,yb);
lineto(xd,yd);
moveto(xb,yb);
lineto(xa,ya);
moveto(xa+5,ya-8);
Textout(xa+5,ya-8,'A');
moveto(xb+5,yb-8);
Textout(xb+5,yb-8,'B');
moveto(xc+5,yc-8);
Textout(xc+5,yc-8,'C');
moveto(xd+5,yd-8);
Textout(xd+5,yd-8,'D');
moveto(xe+5,ye-8);
Textout(xe+5,ye-8,'E');
//Рисование штриховки
e:=ya+25;
p:=ya-25;
l:=220;
i:=0;
z:=yc+35;
c:=380;
v:=ye+42;
b:=650;
g:=ye-42;
h:=640;
i:=0;
while i<=150 do
begin
moveto(l-150+i,e);
lineto(l-150+(i-5),e+20);
i:=i+5;
end;
i:=0;
while i<=150 do
begin
moveto(l-150+i,p);
lineto(l-150+(i+5),p-20);
i:=i+5;
end;
i:=0;
while i<=40 do
begin
MoveTo(c-40+i,z);
LineTo(c-40+(i+5),z-10);
i:=i+5;
end;
i:=0;
while i<=155 do
begin
MoveTo(b-150+i,v);
Lineto(b-150+(i-5),v-20);
i:=i+5;
end;
i:=0;
while i<=155 do
begin
MoveTo(h-150+i,g);
LineTo(h-150+(i+5),g+20);
i:=i+5;
end;
Pen.Style:=psDashDot;
moveto(50,ya);
LineTo(670,ya);
lineto(xe,ye);
end;
end;


procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
Ris1:=Risunok.create;
Ris1.data;
ris1.draw;
end;

procedure TForm1.btn1Click(Sender: TObject);
begin
close;
end;

end.



Тут сказали что написано не правильно....надо что бы движение исходило от первого объекта,по оси Х.....помогите пожалуста кто знает!!!
Ответить с цитированием
  (#2 (permalink)) Старый
Виталик 1 Виталик 1 вне форума
Member
 
Сообщений: 1,286
Сказал(а) спасибо: 1
Поблагодарили 3 раз(а) в 2 сообщениях
Регистрация: 14.06.2006
По умолчанию 05.06.2011, 21:52

Ну для начала выложи весь проект.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стандартный VGA графический адаптер VampaeR Видеокарты 11 12.06.2013 20:29
сбрасывается графический процессор Asfat Мониторы 0 23.10.2011 14:55
Графический режим 555ALEXANDR555 Pascal 1 28.05.2011 15:57
Графический драйвер ATI berium Видеокарты 6 09.12.2010 20:37
Графический ускоритель Mystere Видеокарты 12 16.11.2010 21:49
GUI в CDT как создать графический интерфейс just_vladimir Eclipse 1 18.09.2007 21:15
графический интерйейс для ЭС artgonch Prolog 0 19.11.2005 20:43
Как запустить графический режим Votmax С/С++ 12 29.10.2005 21:26
Графический счётчик на perl Grechukhin Perl 0 08.08.2005 01:39
Векторный графический редактор как с ним работать Алексеев Николай Delphi 1 03.07.2005 20:27
Как графический планшет подключить в VC++ 6.0 Neka Вопросы начинающих программистов 3 18.02.2005 14:54
Как обнулять графический буфер в VC++ Rem Visual C++ 0 03.02.2004 20:28



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов