Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 10 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
[Delphi] vykreslovanie drahy

Registrovaný: 20.11.09
Prihlásený: 02.11.14
Príspevky: 241
Témy: 58
Bydlisko: Myjava
Príspevok NapísalOffline : 29.12.2010 10:58

Potreboval by som s takou vecou pomomoct a to je prave vykreslovanie drahy robota v DELPHI na nejaku graficku plochu. Ide o to, ze napr. pojde rovno, tak aj ciara bude smerovat kolmo po grafickej ploche, lenze otoci sa dany objekt pod urcitym uhlom (napr 45 st) tak uz aj ta vykreslovana ciara musi ist pod tym 45st vpred a prave toto ako by sa dalo naprogramovat v DELPHI? Este na upresnenie dodam, ta ciara sa vlastne bude vykreslovat po usekoch a to bud po 1 pixeli alebo po usekoch kratkych ciar.
Tento princip je vlastne obdobny ako u 2D hier s autami, ked je pohlad zhora a auto sa pohybuje po ploche.

napr. takto by vyzeral vystup
[Delphi] vykreslovanie drahy


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 29.12.2010 18:05

kreslit mozes na componenty ktore obsahuju canvas , funkciami moveto lineto


Offline

Užívateľ
Užívateľ
[Delphi] vykreslovanie drahy

Registrovaný: 20.11.09
Prihlásený: 02.11.14
Príspevky: 241
Témy: 58
Bydlisko: Myjava
Príspevok Napísal autor témyOffline : 29.12.2010 22:03

no to viem :)

Ale mne ide o to, ze ked sa ten robot otoci o dani uhol, tak aj nech tu ciaru stale vykresluje o ten uhol. A toto je dost velky problem aspon pre mna naprogramovat. Pretoze ked ten robot pojde rovno alebo sa otoci o uhol 90, 180, 270 st. tak sa vlastne bude menit len jedna suradnica (x alebo y), ale ked sa otoci o 18st. tak uz sa budu naraz menit obe suradnice (sucastne x a y). Toto je ta vec, ktoru neviem ako mam naprogramovat, urcite na to treba znalosti z matematiky - vektory a podobne, lenze tam este v skole nie sme :(


Offline

Skúsený užívateľ
Skúsený užívateľ
[Delphi] vykreslovanie drahy

Registrovaný: 11.01.09
Prihlásený: 24.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 30.12.2010 19:54

Môžeš sa zatiaľ oprieť o toto ( na form si daj jeden TEdit a jeden TButton a do uses pridaj unit Math ):
Kód:
var
  OldPosition: TPoint;

const
  VECTORLENGTH = 50;
  rad = pi/180;

implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
begin

  Canvas.MoveTo( 300, 200 );
  OldPosition.X := 300;
  OldPosition.Y := 200;

end;


procedure TForm1.Button1Click(Sender: TObject);
var
  x, y, angle: integer;

begin

  angle := StrToInt( Edit1.Text );

  x := round( OldPosition.X + sin( angle * rad ) * VECTORLENGTH );
  y := round( OldPosition.Y + cos( angle * rad ) * VECTORLENGTH );

  Canvas.LineTo( x, y );
  OldPosition.X := x;
  OldPosition.Y := y;

end;


Do editu píš uhol, v akom sa pohybuje robot. Konštanta VECTORLENGTH je dĺžka, o koľko sa robot pohne po plátne.


Offline

Užívateľ
Užívateľ
[Delphi] vykreslovanie drahy

Registrovaný: 20.11.09
Prihlásený: 02.11.14
Príspevky: 241
Témy: 58
Bydlisko: Myjava
Príspevok Napísal autor témyOffline : 31.12.2010 11:36

Velka vdaka Fico , presne toto som myslel :)

Program si uz upravim aby mi vyhovaval na mieru a doprogramujem komunikaciu a potom Vam ukazem vysledok.
Len tak aby ste vedeli o co sa jedna, robot pojde po zemi a bude sa danym zariadenim ovladat, bud cez PC (klavesnica, joystick,..) alebo cez mobil, popripadne cez dialkovy ovladac. Kazdu sekundu (alebo aj castejsie) sa bude vysielat stav s rotacnich inkrementacnich enkoderoch (IRC) o pohybe kazdeho kolesa, nasledne sa tieto data v PC spracuvaju a pekne sa vykresli draha. Pri zatoceni sa len vyrata uhol a zas bude vykreslovat drahu danym smerom. Presnost tohoto vykreslovania, nebude moc velka, pretoze nedisponujem el. kompasom, ale dostacujuca pre mna.

Myslim nieco na tento system: http://projects.adamh.cz/robot2 , az na to, ze ja tam nemam el. kompas.

este raz velke diky Fico


Offline

Užívateľ
Užívateľ
[Delphi] vykreslovanie drahy

Registrovaný: 20.11.09
Prihlásený: 02.11.14
Príspevky: 241
Témy: 58
Bydlisko: Myjava
Príspevok Napísal autor témyOffline : 16.02.2011 10:52

Esta raz by som sa chcel vratit k tejto teme, potreboval by som o nieco vylepsit vykreslovanie.
Pri zmene uhla otocenia by sa nenakreslila lomena ciara, ale by sa vykreslil vysek kruznice, polomer kruznice by bol nastaveny konstantne.

Ako priklad uvediem, bola by vykreslovana ciara stale rovno, pri zmene uhla o 90° by sa vykreslila 1/4 kruznice do prislusnej strany a za nou by sa standartne vykreslovala ciara.







_________________
"Digitálna technika pozostáva len z 0 a 1, ktoré sú v správny čas na správnom mieste." M. Valášek
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 16.02.2011 15:02

myslis nieco taketo ?
Kód:
procedure TForm1.Button1Click(Sender: TObject);
var
  x, y, angle: integer;
  i,e : Integer;
  polomer : Integer;
  OldPosition: TPoint;
begin
   OldPosition.X := 200;
   OldPosition.Y := 230;
   Canvas.MoveTo( OldPosition.X, OldPosition.Y );
   OldPosition.X := 230;
   OldPosition.Y := 230;
   Canvas.LineTo( OldPosition.X, OldPosition.Y );
  polomer := 40;
  for i:= 1 to 90 do begin

  x :=  Round(sin(i*(pi/180))*polomer);
  y :=  Round(cos(i*(pi/180))*polomer);

  Canvas.LineTo( OldPosition.X+x, OldPosition.y+y-polomer );
  Sleep(10);
  Application.ProcessMessages;
 end;
 Canvas.LineTo( OldPosition.X+x, OldPosition.y+y-polomer-50 );
end;


Offline

Užívateľ
Užívateľ
[Delphi] vykreslovanie drahy

Registrovaný: 20.11.09
Prihlásený: 02.11.14
Príspevky: 241
Témy: 58
Bydlisko: Myjava
Príspevok Napísal autor témyOffline : 16.02.2011 16:52

Ano, nieco na tento system. diky.
Snad sa mi to podari este prerobit na moje uceli, ak nie ozvem sa :shock:

EDIT:
Este poradil by si mi, ako sa da najjednoduchsie zmenit smer zakrivenia kruznice (myslim tym nie zprava dolava, ale opacne zlava doprava)?







_________________
"Digitálna technika pozostáva len z 0 a 1, ktoré sú v správny čas na správnom mieste." M. Valášek
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 16.02.2011 18:54

skusal si vymenit sin/cos ?


Offline

Užívateľ
Užívateľ
[Delphi] vykreslovanie drahy

Registrovaný: 20.11.09
Prihlásený: 02.11.14
Príspevky: 241
Témy: 58
Bydlisko: Myjava
Príspevok Napísal autor témyOffline : 16.02.2011 19:34

Ja som to trochu inak myslel, vykreslovat obraz v opacnom smere, ale v zrkadlovo otocenom.


Ten vlavo je povodny a ja to myslim vykreslit ako je na to na pravom obrazku:

[Delphi] vykreslovanie drahy


EDIT:
OK, Uz som na to prisiel, treba zmenit iba znamienka:
Kód:
  x :=  Round(sin(i*(pi/180))*polomer);
  y :=  - Round(cos(i*(pi/180))*polomer);

  Canvas.LineTo( OldPosition.X+x, OldPosition.y+y+polomer );







_________________
"Digitálna technika pozostáva len z 0 a 1, ktoré sú v správny čas na správnom mieste." M. Valášek
Odpovedať na tému [ Príspevkov: 10 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Delphi - Dynamické vykreslovanie (runtime) komponentov

v Delphi, Visual Basic

3

546

15.10.2010 10:05

coldak Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. delphi zapis cisla do editu v delphi

v Delphi, Visual Basic

3

1107

11.05.2008 12:02

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. drahy apple

v PC zostavy

27

1515

01.02.2008 23:56

salamoon Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ISIC Ceske Drahy

v Vzdelanie, štúdium, škola

9

2477

22.06.2012 7:47

Vlad Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Je Mac Pro drahý?

[ Choď na stránku:Choď na stránku: 1, 2, 3, 4 ]

v Novinky

106

2622

30.12.2013 18:16

Spartan.Ex Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vykreslovanie grafu

v Delphi, Visual Basic

6

865

27.08.2011 11:54

vama Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zbytočne drahý monitor pre kamaráta

v Monitory, televízory a projektory

13

779

18.03.2017 23:29

marekk5111 Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. Nový iPhone bude rekordne drahý

[ Choď na stránku:Choď na stránku: 1 ... 23, 24, 25 ]

v Novinky

749

15799

07.04.2015 19:53

brmbo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vykreslovanie do Canvas

v Assembler, C, C++, Pascal, Java

4

287

13.04.2013 12:14

XOLOO Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. gts250 1gb vykreslovanie

v nVidia grafické karty

4

356

01.01.2011 9:47

marko13 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. QtCreator - vykreslovanie pixelov

v Assembler, C, C++, Pascal, Java

9

580

27.02.2011 23:40

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pomale vykreslovanie Photoshop

v Grafické programy

4

548

12.11.2009 12:29

El_locco Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. nahodne vykreslovanie - pascal

v Assembler, C, C++, Pascal, Java

16

1659

03.06.2007 22:38

juho Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Osetrenie vyjdenie z drahy (turbo pascal)

v Assembler, C, C++, Pascal, Java

11

778

14.12.2008 11:54

Blackshadow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C - vykreslovanie sikmych ciar

v Assembler, C, C++, Pascal, Java

8

634

29.05.2010 13:48

stopa27 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SVG vykreslovanie v cecku

v Assembler, C, C++, Pascal, Java

12

763

19.06.2011 17:52

ice-g Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra