Tidligere har vi beskrevet et drejeled, fordi det umiddelbar var det mest komplekse led vi stod overfor. Hvorvidt vi får det implementeret i koden vil tiden vise, for det er ikke nær så essentielt som de andre led: Vi har studeret menneskelige led og knogler i materiale vi har skaffet, og det viser sig at drejeledet primært er nødvendigt for at modellere menneskers underarm. De andre ledtyper - hængselled og kugleled - er derimod anvendt overalt i kroppen.
Så derfor vil vi her fokusere på det design vi har lavet af kugleled og hængselled
Det kugleled vi har planlagt ser ca. således ud:

Dette led består af to kongruente pyramider, som er sat sammen ved spidsen. De to pyramider kan rottere frit i forhold til hinanden i vores mest basale model, så længe de ikke rotterer ind over hinanden. De er lavet ved hjælp af faste afstande partiklerne imellem, hvorfor der ikke er behov for diagonal-constraints i bunden. Det er illustreret på tegningen med de røde streger, der er constraints med en minimumsafstand som er ca. det samme som afstanden mellem to partikler i en af pyramidernes bund. Men her slutter det ikke - udover de tegnede constraints er det faktisk nødvendigt med samme minimumsconstraints fra alle partikler i den ene pyramidebund til alle partikler i den anden pyramidebund. Det er fordi pyramiderne selvfølgelig også kan "twistes" i forhold til hinanden. Vi vil forsøge at tilføje en tegning hvor alle constraints er sat på senere.
Hvis man ønsker at begrænse ledets twist-evne kan det forsøgsvis gøres ved at lave maksafstande på de røde constraints - men de skal beregnes nøje, og vi har endnu ikke undersøgt præcist hvordan det vil ha indflydelse på ledets bøjeegenskaber, og det bliver højest sandsynligt noget som bliver sat på når vi har mulighed for at visualisere det på skærmen.
Det næste led vi har arbejdet med er et universelt hængselled. Universelt, fordi vi ønsker at kunne begrænse hvilke vinkler det kan bøje sig indenfor.
Det ser således ud:

Det består af to prismer med lige stor højde og ligedannede trakenter som grund-areal.
Det er væsentligt at bemærke, at der på alle firkantede overflader i figuren er der behov for diagonaler.
Trekanterne i "bunden" (på tegningen ses de fra siden) skal forestille at være trekanter hvor alle vinkler er 60 grader. Endvidere gælder det for alle constraints som ikke er diagonaler i prismerne, at de har samme længde, og at denne længde vil blive givet med til ledet i dens constructor.
Den røde trekantsfigur som er tegnet på markerer en rød constraint og en rød vinkel. Det er fordi vi er i stand til at beregne længden af den røde constraint, der er en min/max constraint, som begrænser hvor meget leddet kan bevæge sig. Som standard vil man sige, at trekanterne ikke må gå ind over hinanden.
Vi kan, ved hjælp af sinusrelationen, den røde vinkel, og de røde kateter som støder op imod vinklen beregne hvor stor constrainten skal være for at låse leddet i en given vinkel. Envidere kan vi anvende samme relation til at angive minimumslængde og maksimumslængde for constrainten, for på den måde at begrænse ledets bevægelsesevne. Det gør at vi kan modellere et knæled, der jo ikke kan bøjes fremad, for eksempel. At gøre det samme for den sorte vinkel og den sorte constraint gør blot at vi kan præcisere det yderligere.
Vi har også designet et udviddet drejeled, som vi vil snakke om senere, når vi har fået tegnet og dokumenteret det lidt bedre.




Ingen kommentarer:
Send en kommentar