
Delphi 6 výpočet šikmej čiary
Dobrý večer priatelia, možno moja otázka znie velmi triviálne no matematické funkcie neovládam natoľko aby som vedel zostaviť efektívny algorytmus. Potreboval by som zostaviť vzorec, ktorým by som vedel vyrátať, kadiaľ bude na ploche so súradnicami napr. 0-0 až 1000-1000 viesť linka z bodu a pod určitým uhlom. Teda ak napr kurzor stojí na súradnici 10-10 a ja nastavím stupeň 0 tak sa bude inkrementovať len jedna os, ak nastavím uhol 90 tak iba druhá, no ako vyrátam líniu pri napr 23 alebo 128 stupňoch? Viem že na kresliacom plátne existujú procedúry ako lineto avšak ja nepotrebujem kresliť ale virtuálne vyrátať kadiaľ povedie čiara. Je prosím medzi vami šikovný matematik, ktorý by mi vedel poradiť? Skúšal som samozrejme Google a našiel nejaké anglické postupy ale žiadny použitelný vzorec a z anglickej teórie som nebol veľmi múdry. Vďaka
No bez matematiky s tym nepohnes.
Musi ti byt jasne, co znamena zapis y=kx+q
A uhol, o ktorom hovoris, vyplynie zo smernice k,
plati totiz, ze smernica k je tangensom tvojho uhla.
Tangens je protilahla lomeno prilahla. Z toho vies vypocitat q (za prilahlu das x-ovu suradnicu a vyjde ti hodnota, kdre ti priamka pretina y-ovu os, co je vlastne q) a mas kompletnu rovnicu priamky.
Zapis v delphi nepoznam, ale z dotazu vyplyva, ze skor potrebujes teoriu o priamke...
Ak budes mat k a q, rovnica ti pre akekolvek x vrati prislusne y.
případně lze použít "Kozinovy věty" (Lomikare apod.)
A někdy stačí jenom ty Kozy.
http://tomasjanecek.cz/clanky/post/trivialni-algor itmus-dda-algoritmus-a-bresenhamuv-algoritmus-pro- usecku-v-jazyce-java
Ze to je v jave je irelevantne, algoritmy su nezavisle od jazyku.
Inac je to obycajna geometria zo strednej skoly, len upravena na celociselne operacie.
A ked chces zistit len jeden bod na nejakej pozicii x, tak pouzijes goniometricke fcie (tg alebo cotg) a posun suradnic
uvod.html
a teda napr.:
y = ystart + tg(uhol)*(x-xstart)
Nájdi si niečo o Bresenhamovej metóde - to je najefektívnejší spôsob, ako to vypočítať.
Toto jsem dělal kdysi na výšce, vyžaduje JRE. Umí to vykreslit úsečku mezi dvěma body a ořez úsečky konvexním oknem. Přikládám zdroják v Javě i jarko.