Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Lunil
Člen
Avatar
Lunil:9.6.2013 14:37

Ahojte ;)
Mam na vas taky malicky dotazik :)
Model :
Mam 2rozmernu sachovnicu. Jej velkost je premenliva, takze pouzivam na nu dynamicke int[][][]; X,Y ukazuje suradnicu v sieti, Z zatial vidi / nevidi.

Ked to vykreslujem, prechadzam cele pole. Vypocitavam kazdeho polica (1 stvorcek ma zatial 100x100 pixlov) kde ma byt vykreslene, ak mi padne do vyseku zobrazenia, nakreslim ho. Vsetko facha dobre, este aj posuvanie myskou mi ide. Posuvanie spociva v tom, ze mu poviem zdialenost od bodu 0,0 a dlzku kolko ma vykreslit. napriklad, vysek zacina 200X,200Y a dlzky 300X, 250Y.

Problematika:
Ked som zacal robit scale, narazil som na malicky problem, Ono mi to vsetzko zoomuje vzhladom na pociatok suradnicoveho systemu. Je to samozrejme logicke, ak mam 4 policka vedla seba a dam scale 0.5, tak na pociatku 2heho policka pri scale 0.5 zacina 3tie policko. Lebo bod 0,0 sa nezmenil.
Ako dokazem zmenit pociatok 0,0 (popripade moj posun) vzhladom na scale?

Najblizsie som sa dostal k tomu tak, ze posun som vynasobil Scale. Cize som posunul pociatok suradnicoveho systemu ta, ze lavy horny roh je vzdy ten isty a prava strana a spodok sa prisposobuju. Lenze chcel by som aby stred vyseku bol vzdy ten isty a aj nalavo, napravo, hore, dole sa mi to prisposobovalo.

Projekt :
1 vizualizacia je lepsia ako 10 opisov.
http://ulozto.sk/…/projekt-zip

Za odpoved vopred dakujem :)

Editováno 9.6.2013 14:40
Odpovědět
9.6.2013 14:37
Neustalym resetovanim pocitaca ho dovedieme do pozadovaneho stavu. O:-)
Avatar
Lunil
Člen
Avatar
Lunil:9.6.2013 14:45

Prosim, moze to niekto presunut na spravne forum?
Ono to patrilo do ".NET (C# a Visual Basic)" -> XNA
Moc sa ospravedlnujem za zmetok :(

Nahoru Odpovědět
9.6.2013 14:45
Neustalym resetovanim pocitaca ho dovedieme do pozadovaneho stavu. O:-)
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na Lunil
TomBen:9.6.2013 16:46

Přesunuto.

Nahoru Odpovědět
9.6.2013 16:46
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Lunil
David Hartinger:9.6.2013 20:19

Nějak jsem se v tom ztratil. Ty chceš aby ti to zoomovalo tam, kde je myš a ne vždy do počátku, je to tak? Mělo by stačit vzít pozici myši, vynásobit to scalem a o rozdíl oproti původní pozici posunout vykreslovanou šachovnici.

Nahoru Odpovědět
9.6.2013 20:19
You are the greatest project you will ever work on.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Lunil
David Hartinger:9.6.2013 20:20

Možná o půlku rozdílu, teď nevím, musíš to zkusit :D

Nahoru Odpovědět
9.6.2013 20:20
You are the greatest project you will ever work on.
Avatar
Lunil
Člen
Avatar
Lunil:9.6.2013 21:12

No nie, uvediem priklad
mam okno o dlzke 400 pixelov, mam 40 policok, kde jedno policko je siroke 100 pixelov
ked mam posun o 0 pixelov, tak na obrazove vidim policka 1, 2, 3, 4
ked mam posun o 200 pixelov, tak na obrazove vidim policka 3, 4, 5, 6
to je scale 1
ked dam scale 0.5
ked mam posun o 0 pixelov, tak na obrazove vidim policka 1, 2, 3, 4, 5, 6, 7, 8
ked mam posun o 200 pixelov, tak na obrazove vidim policka 3, 4, 5, 6, 7, 8, 9, 10

No a teraz ked pri tom scale sa vraciam postupne k 1
v prvom pripade posun 0 by sa to malo priblizovat k tak, ze stred je medzi 4, 5
v druhom pripade tak ze je stred medzi 6, 7;
Lenze oba pripady sa mi priblizuju tak, ze stred je na policku 1. A nech skusam hociako to matematicky prepocitat, stale mi to taha stred k pociatku suradnicoveho systemu a nie k stredu zobrazenia.

V priklade co som postol zdrojovy kod, ked sa spusti, posuva sa pravim tlacitkom, scale je koleckom. Pri zmene sa to vzdy prejavuje smerom lavy horny roh (cize smer k 0, 0).

Rad by som to vysvetlil lepsie, lenze je to narocne na popis :)

Nahoru Odpovědět
9.6.2013 21:12
Neustalym resetovanim pocitaca ho dovedieme do pozadovaneho stavu. O:-)
Avatar
Lunil
Člen
Avatar
Odpovídá na David Hartinger
Lunil:14.6.2013 20:34

Super, dakujem za napovedu, pomohlo to co si napisal, akurat namiesto mysky, som dal suradnice stredu vyseku a islo to.
(Dobre priznam sa, musel som hodne rozmyslat, lebo pre mna to bolo hodne nejasne napisane a ked som to pocital nevychadzalo, takze som to zavrhol a dostal som sa k tomu po 2 hodinach rozmyslania :-D )

Pre ostatnych mozno pomoze vzorec :

Xn = (X - Xs)*Scale + Xs

Kde
Xn -> Nova pozicia bodu
X -> xsova suradnica bodu, ktory chcem posunut
Xs -> bod okolo ktoreho sa ma centrovat zoom (scale) (v mojom pripade, stred vyseku)

Takze dakujem za pomoc.

Nahoru Odpovědět
14.6.2013 20:34
Neustalym resetovanim pocitaca ho dovedieme do pozadovaneho stavu. O:-)
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Lunil
David Hartinger:17.6.2013 18:46

Jestli z toho něco vznikne, tak to sem pak hoď :)

Nahoru Odpovědět
17.6.2013 18:46
You are the greatest project you will ever work on.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.