[ 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 | 58
Bydlisko: Myjava
NapísalOffline : 29.12.2010 10:58 | [Delphi] vykreslovanie drahy

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 | 2
NapísalOffline : 29.12.2010 18:05 | [Delphi] vykreslovanie drahy

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 | 58
Bydlisko: Myjava
Napísal autor témyOffline : 29.12.2010 22:03 | [Delphi] vykreslovanie drahy

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ý: 26.12.24
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 30.12.2010 19:54 | [Delphi] vykreslovanie drahy

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 | 58
Bydlisko: Myjava
Napísal autor témyOffline : 31.12.2010 11:36 | [Delphi] vykreslovanie drahy

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 | 58
Bydlisko: Myjava
Napísal autor témyOffline : 16.02.2011 10:52 | [Delphi] vykreslovanie drahy

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 | 2
NapísalOffline : 16.02.2011 15:02 | [Delphi] vykreslovanie drahy

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 | 58
Bydlisko: Myjava
Napísal autor témyOffline : 16.02.2011 16:52 | [Delphi] vykreslovanie drahy

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 | 2
NapísalOffline : 16.02.2011 18:54 | [Delphi] vykreslovanie drahy

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 | 58
Bydlisko: Myjava
Napísal autor témyOffline : 16.02.2011 19:34 | [Delphi] vykreslovanie drahy

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
 [ Príspevkov: 10 ] 


[Delphi] vykreslovanie drahy



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

582

15.10.2010 10:05

coldak

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

delphi zapis cisla do editu v delphi

v Delphi, Visual Basic

3

1151

11.05.2008 12:02

p360t

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

drahy apple

v PC zostavy

27

1566

01.02.2008 23:56

salamoon

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

ISIC Ceske Drahy

v Vzdelanie, štúdium, škola

9

2600

22.06.2012 7:47

Vlad

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

2786

30.12.2013 18:16

Spartan.Ex

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

vykreslovanie grafu

v Delphi, Visual Basic

6

909

27.08.2011 11:54

vama

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

828

18.03.2017 23:29

marekk5111

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

16399

07.04.2015 19:53

brmbo

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

Vykreslovanie do Canvas

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

4

321

13.04.2013 12:14

XOLOO

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

gts250 1gb vykreslovanie

v nVidia grafické karty

4

394

01.01.2011 9:47

marko13

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

QtCreator - vykreslovanie pixelov

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

9

621

27.02.2011 23:40

Fico

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

Pomale vykreslovanie Photoshop

v Grafické programy

4

589

12.11.2009 12:29

El_locco

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

nahodne vykreslovanie - pascal

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

16

1706

03.06.2007 22:38

juho

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

835

14.12.2008 11:54

Blackshadow

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

C - vykreslovanie sikmych ciar

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

8

664

29.05.2010 13:48

stopa27

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

SVG vykreslovanie v cecku

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

12

797

19.06.2011 17:52

ice-g



© 2005 - 2024 PCforum, edited by JanoF