[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [TEKNIK] LEGO spm



Atte André Jensen <sslug@sslug> writes:

> Hejsa
>
> Jeg har siddet og leget med ldraw filformatet direkte i emacs. Langt hen
> ad vejen giver det god mening, men jeg kan ikke finde ud af at dreje et
> element. I første omgang kunne jeg godt tænke mig vist hvordan følgende
> ville komme til at se ud i de tre versioner svarende til drejet om de
> tre akser:
>
> 1 14 0 0 0 1 0 0 0 1 0 0 0 1 3020.DAT

lidt forenklet:
Det første tal (1) fortæller noget om hvordan resten af linien skal tolkes
(1 betyder at vi skal inkludere en fil af samme format)
Andet tal (14) er en farve
De tre næste tal (0 0 0)  er en vektor der lægges til alle punkter
De ni næste (1 0 0 0 1 0 0 0 1) er en matrix der ganges på alle punkter
Til sidst står navnet på den fil der skal inkluderes.

Når vi har konstateret at vi skal inkludere en fil er det nok nemmest at
parse resten af linien bagfra.

3020.DAT er en fil der indeholder de tegneprimitiver der skal til at
lave en tegning af element 3020 (en 2x4-plade).

[1 0 0]
[0 1 0]
[0 0 1] er identitetsmatricen så tegningen bliver ikke transformeret på
nogen måde.

[0 0 0] betyder så at tegningen starter i origo.

Jeg kan ikke huske farvekoderne.

Når vi så vil rotere et element skal vi ændre på
transformationsmatricen.
En rotation med vinklen t om x-aksen fås med matricen:
[1      0       0]
[0 cos(t) -sin(t)]
[0 sin(t)  cos(t)]

En rotation med vinklen t om y-aksen fås med matricen:
[ cos(t) 0 sin(t)]
[      0 1      0]
[-sin(t) 0 cos(t)]

En rotation med vinklen t om z-aksen fås med matricen:
[cos(t) -sin(t) 0]
[sin(t)  cos(t) 0]
[     0       0 1]

De kan så ganges sammen hvis du vil rotere om flere akser på en gang.

Og ja, du kan sagtens angive transformationsmatricen:
[4 0 0]
[2 2 0]
[0 0 1]
det er bare ikke en transformation du kan udsætte en virkelig legoklods
for. 

.Henrik

-- 
>> Jo ja nej æh bøh!
>Helt enig.
Me too ... 
		-- vi lader personerne bag være anonyme


 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2006-04-01, 02:02 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *