12 - 12 - 2017
Main Menu
Development
Old stories

New ancestor view

User Rating:  / 0
PoorBest 

 

Nytt Ancestor vindu er laget i AgetoAgeSqlite. Dette vinduet kan vise et teoretisk uendelig antall ancestorer, dvs det vil selvfølgelig være begrenset av hvor mange ancestorer man har registrert. Men for hvert step bakover så halveres avstandene så helt øverst i vindet er hver ancestor blitt til bare en liten prikk for å illustrere at her er det noen ancestorer man kan surfe inn på. Man surfer ved å presse venstre eller høyre piltast på tastaturet for å gå henholdsvis på far eller morside. For å gå tilbake presser man Ned piltasten på tastaturet. Dette anbefales å ta en titt på. Det krever at man registrer noen ancestorer da, Men man kan jo registrere noen Mr X og Mrs X bare for å prøve.....en slags 3 dimensjonal opplevelse...vinduet får man opp ved å høyreklikke i Ancestorlisten og velge Tree. (Ancestorlisten får man opp ved å høyreklikke i personlisten og velge Ancestorer).

17-12-2010 - Lastet opp ny versjon av AgetoAgeSqlite med revidert Ancestor Tree. Fant ut hvordan få det symetrisk og man kan velge mellom forskjellige visningsmoduser ved å presse Spacebar (mellomrom tasten på tastaturet). Pluss at det vises inne i hovedvinduet nå.

 

Her er visningsmodus "fylte bokser"

18-12-2010 - Lastet opp ny versjon med revidert Ancestor Tree. Har studert noen teknikker for å vise grafikk og tekst. Det er lett å skalere tekst og grafikk med de innebygde funksjoner i C#.

19-12-2010 - Ny versjon av AgetoAgeSqlite lastet opp. Nå med en egen designer der du kan lage ditt symbol for en Ancestor.

 

Oppdatert Icon designeren med Save knapp og man kan velge et icon man har lagret tidligere. Oppdateringen er lastet opp.

21-12-2010 - Lastet opp ny versjon av AgetoAgeSqlite. Ancestor icon Designer har fått en Undo knapp som kan Undo den siste handlingen som ble utført. Bildet under viser hvordan prinsippet er for Ancestor Tree. For hvert step bakover i generasjonene blir avstander halvert, men samtidig blir det dobbelt så mange ancestorer slik at bredden på treet er den samme uansett hvor mange generasjoner man går bakover.

 

Høyden på treet vil øke raskt på de første generasjoner deretter vil økningen av høyden raskt avta og økning vil gå mot null når generasjons nivået  går mot uendelig.

Generation Antall ancestorer Økning på høyde Total høyde
1 2 50,000000000000 50,000000000000
2 4 25,000000000000 75,000000000000
3 8 12,500000000000 87,500000000000
4 16 6,250000000000 93,750000000000
5 32 3,125000000000 96,875000000000
6 64 1,562500000000 98,437500000000
7 128 0,781250000000 99,218750000000
8 256 0,390625000000 99,609375000000
9 512 0,195312500000 99,804687500000
10 1024 0,097656250000 99,902343750000
11 2048 0,048828125000 99,951171875000
12 4096 0,024414062500 99,975585937500
13 8192 0,012207031250 99,987792968750
14 16384 0,006103515625 99,993896484375
15 32768 0,003051757813 99,996948242188
16 65536 0,001525878906 99,998474121094
17 131072 0,000762939453 99,999237060547
18 262144 0,000381469727 99,999618530274
19 524288 0,000190734863 99,999809265137
20 1048576 0,000095367432 99,999904632568
21 2097152 0,000047683716 99,999952316284
22 4194304 0,000023841858 99,999976158142
23 8388608 0,000011920929 99,999988079071
24 16777216 0,000005960464 99,999994039536
25 33554432 0,000002980232 99,999997019768
26 67108864 0,000001490116 99,999998509884
27 134217728 0,000000745058 99,999999254942
28 268435456 0,000000372529 99,999999627471
29 536870912 0,000000186265 99,999999813736
30 1073741824 0,000000093132 99,999999906868

 Tabellen over viser at det slett ikke er vanskelig å lage et ancestor tree som teoretisk kan vise et uendelig antall ancestorer. Her startet jeg med 50 mm økning på høyden fra nederste kant på vinduet og man ser at grenseverdien er 100. Total høyde vil aldri komme over 100 mm uansett hvor mange generasjoner man viser. Men antall ancestorer på hvert generasjonsnivå blir fort astronomisk da det allerede har passert en milliard på generasjon 30. Dette viser kanskje at vi alle er egentlig ganske så like......

 

 23-12-2010 - Lastet opp revidert versjon med bedre Ancestor icon designer. Noen som har prøvd å programmere et lite tegne program med Visual C# ? Det som overrasket meg litt var at det ikke var innebygget noen god funksjon for å tegne opp linjer og kurver som bare er ment å vises før man godkjenner en tegneoperasjon med f.eks å klikke venstremus knapp. Altså en hjelpelinje som viser hvordan linjen vil bli mens man tegner. Men det er forsåvidt ikke noe problem, det er bare å bruke grafikk funksjonene i Windows API. Disse finnes i "gdi32.dll". Ved å bruke en XOR pen er det enkelt å tegne opp en linje og så ta bort denne linjen uten at bakgrunnen blir berørt. Visual C# bruker gdiplus.dll til standard tegneoperasjoner og dette kalles GDI+ mens det som er innebygget i Windows er gdi32.dll og kalles Windows GDI (uten plus)

Men det er heldigvis meget enkelt å bruke en funksjon fra Windows GDI når man programmerer i MS Visual C# om man ønsker det. Bare å deklarere funksjonene man ønsker å bruke f.eks slik

using System.Runtime.InteropServices;

[DllImport("gdi32.dll")]

public static extern int Ellipse(IntPtr hDC, int X1, int Y1, int X2, int Y2);

og da er man klar for å bruke Windows GDI for å tegne opp en ellipse.

Add comment


Security code
Refresh