Mijn grootste struikelblok, wiskunde, zit me nu ook weer in de weg. Ik ben bezig met een view te maken die je kan vouwen in iOS. Zoals hier te zien.
Dit is mij gelukt, ik kan de view offscreen renderen, opdelen in plaatjes en roteren e.d. works like a charm, maar nu zit ik met een ander punt waar ik vast loop.
Ik zal een plaatje toevoegen om het te illustreren.

In bovenstaand plaatje zie je het geheel van de zijkant, de horizonale lijn is zeg maar het scherm vanaf de zijkant gezien, met de 'gevouwde' view er boven op. De gestreepte lijntjes zijn denkbare lijnen, als ik enkel de eerste vouw zou maken (dus die op punt 0) naar een waarde tussen 0 en -90 graden (hij staat nu ongeveer op -45 graden) dan zouden de andere views 'omhoog' komen.
In 3D is dat hier te zien.
De volgende vouw is dus een vouw in graden de andere kant op, en de volgende wordt weer de andere kant op gevouwd. (Ik hoop dat dat duidelijk is). De allereerste view (links in het plaatje) wordt dus geroteerd tussen een as van 0 en -90 graden (deze begint namelijk 'plat'), de volgende tussen 0 en 180 graden, de opvolgende tussen 0 en -180 graden, de volgende tussen 0 en 180 graden en weer de volgende tussen 0 en -180 graden enzovoort enzovoort.
Nu heb ik het zo gemaakt dat als ik de vouw methode een cijfer tussen 0 en 1 geef hij vouwt, 0 is helemaal ingeklapt (dus dan staat hij voor de eerste op -90 graden, dan op 180 graden, dan -180, dan 180 enz.) en bij 1 is hij helemaal uitgeklapt, dan staat alles op 0 graden. En bij 0.5 er tussenin (-45, 90, -90... enz)
So far so good. Nu heb ik een touch systeem ingesteld dat als ik op punt 0 ben hij 0 terug geeft en punt 1 hij 1 terug geeft, halverwege het scherm aanraken geeft hij dus een 0.5 terug.
Nu dacht ik nou, dan gooi ik die waarde gewoon in de vouwfunctie en als ik dan heen en weer ga met mijn vinger vouwt of de view in of uit. Wat op zich werkt als te zien in deze video.*
[YouTube: http://www.youtube.com/watch?v=fGAgag-zDTY&feature=youtu.be]
*In de video gaat hij crappy als hell, op de iPhone is het smooth en normaal, ligt denk ik aan de simulator, opnemen en het feit dat mijn MBP dat niet tegelijk trekt
Anyways mijn probleem is te zien in de video, als ik laten we zeggen halverwege ben met mijn muis (dus op 0.5), loopt de positie van het vouwen iets achter, als ik helemaal rechts ben met de muis (dus op 1) heeft het vouw systeem weer 'ingelopen' en eindigt het wel gelijk.
Nu verwacht ik dat ik iets met sinus / cosinus moet doen om dit lekker te laten lopen zodat mijn 0 tot 1 positie coordinaten overeenkomt met de 0 tot 1 graden in mijn rotatie. Maar wat.
Als ik het probleem zo bekijk is mijn vraagstelling te moeilijk en moet het ook zo kunnen, als ik het terug breng naar 1 item die roteert, dan krijg je volgens mij dit.

Waar de afstand 0 in het midden van de circel zit, en 0.5 helemaal rechts, (reken je niet vanaf het midden maar vanaf links, de gehele doorsnede dan heb je een afstand van 1). Ik weet de positie op die lijn, wat is de bijbehorende graad.
Dit is mij gelukt, ik kan de view offscreen renderen, opdelen in plaatjes en roteren e.d. works like a charm, maar nu zit ik met een ander punt waar ik vast loop.
Ik zal een plaatje toevoegen om het te illustreren.

In bovenstaand plaatje zie je het geheel van de zijkant, de horizonale lijn is zeg maar het scherm vanaf de zijkant gezien, met de 'gevouwde' view er boven op. De gestreepte lijntjes zijn denkbare lijnen, als ik enkel de eerste vouw zou maken (dus die op punt 0) naar een waarde tussen 0 en -90 graden (hij staat nu ongeveer op -45 graden) dan zouden de andere views 'omhoog' komen.
In 3D is dat hier te zien.
De volgende vouw is dus een vouw in graden de andere kant op, en de volgende wordt weer de andere kant op gevouwd. (Ik hoop dat dat duidelijk is). De allereerste view (links in het plaatje) wordt dus geroteerd tussen een as van 0 en -90 graden (deze begint namelijk 'plat'), de volgende tussen 0 en 180 graden, de opvolgende tussen 0 en -180 graden, de volgende tussen 0 en 180 graden en weer de volgende tussen 0 en -180 graden enzovoort enzovoort.
Nu heb ik het zo gemaakt dat als ik de vouw methode een cijfer tussen 0 en 1 geef hij vouwt, 0 is helemaal ingeklapt (dus dan staat hij voor de eerste op -90 graden, dan op 180 graden, dan -180, dan 180 enz.) en bij 1 is hij helemaal uitgeklapt, dan staat alles op 0 graden. En bij 0.5 er tussenin (-45, 90, -90... enz)
So far so good. Nu heb ik een touch systeem ingesteld dat als ik op punt 0 ben hij 0 terug geeft en punt 1 hij 1 terug geeft, halverwege het scherm aanraken geeft hij dus een 0.5 terug.
Nu dacht ik nou, dan gooi ik die waarde gewoon in de vouwfunctie en als ik dan heen en weer ga met mijn vinger vouwt of de view in of uit. Wat op zich werkt als te zien in deze video.*
[YouTube: http://www.youtube.com/watch?v=fGAgag-zDTY&feature=youtu.be]
*In de video gaat hij crappy als hell, op de iPhone is het smooth en normaal, ligt denk ik aan de simulator, opnemen en het feit dat mijn MBP dat niet tegelijk trekt
Anyways mijn probleem is te zien in de video, als ik laten we zeggen halverwege ben met mijn muis (dus op 0.5), loopt de positie van het vouwen iets achter, als ik helemaal rechts ben met de muis (dus op 1) heeft het vouw systeem weer 'ingelopen' en eindigt het wel gelijk.
Nu verwacht ik dat ik iets met sinus / cosinus moet doen om dit lekker te laten lopen zodat mijn 0 tot 1 positie coordinaten overeenkomt met de 0 tot 1 graden in mijn rotatie. Maar wat.
Als ik het probleem zo bekijk is mijn vraagstelling te moeilijk en moet het ook zo kunnen, als ik het terug breng naar 1 item die roteert, dan krijg je volgens mij dit.

Waar de afstand 0 in het midden van de circel zit, en 0.5 helemaal rechts, (reken je niet vanaf het midden maar vanaf links, de gehele doorsnede dan heb je een afstand van 1). Ik weet de positie op die lijn, wat is de bijbehorende graad.
[ Voor 7% gewijzigd door ZpAz op 20-03-2013 17:55 ]