Punkter på en kurve (arc)

Tags:    punkter cirkel php

Hvordan finder man alle punkter på en kurve, der har et heltal y koordintat.

Kurven er en del af en cirkel og jeg har vinklerne kurven starter og slutter ved og cirklens centrum og radius.

Nedenstående viser hvad jeg ønsker, højest 2 punkter per y, 1 på hver side af eventuel top af kurven.
[code]
xxx <- p(c.x - 1 c.y - 4), p(c.x + 1 c.y - 4)
x xx <- p(c.x - 2 c.y - 3), p(c.x + 3 c.y - 3)
x <- p(c.x + 4 c.y - 2)
x <- p(c.x + 5 c.y - 1)
c x <- p(c.x + 5 c.y )

[/cpde]

Løsningen behøver ikke at være en php kode, kan formentlig selv konvertere til php fra et andet sprog eller fra matematikken i det.



3 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 10 karma
Sorter efter stemmer Sorter efter dato
Nu ved jeg ikke, hvor langt du er kommet, men jeg ville tage udgangspunkt i cirklens ligning:
(x-a)^2+(y-b)^2=r^2 ... radius: r , centrum: C(a,b)
og isolere x eftersom du ønsker x-koordinater til punkter med heltal y-koordinat:
x = (+/-) ( sqrt(-4(y-b)^2+4r^2) / 2 ) + a ... (løs evt. selv for at være sikker)

Så kan du bestemme x-koordinaterne ved at indsætte de hele y-koordinater (start fra 'b' og gå i begge retninger indtil du havner uden for cirklen).

Til sidst skal du finde ud af hvilke punkter, der så ligger indenfor den afgrænsede kurve. Så langt har jeg ikke tænkt, men hvis du kender vinklen får du brug for noget cosinus/sinus til at bestemme de koordinater kurven ligger indenfor. Enhedscirklen er altid en god kilde til inspiration.

PS. Jeg forstod ikke, hvor du ville hen med de punkter du angav, så bær over med mig, hvis jeg er helt ude i hampen.



Tak for hjælpen efter lidt kom jeg frem til en teknik der virkede:

Fold kodeboks ind/udKode 


Kom frem til at cirklen centrum er ligegyldt. Kan bare rykke punkterne bagefter. Der udover kan jeg ikke lige se hvorfor du skrev 4 og /2 i dine ligninger.
Pythagoras: c^2 = a^2 + b^2 => a = sqrt(c^2 - b^2)





Fordi jeg havde centrum-koordinaterne med, blev isoleringen en smule mere besværlig. Men du har nok ganske ret i, at det er lettere at glemme centrum og flytte rundt bagefter.

(Jeg har forresten ikke selv isoleret x i ligningen - det bad jeg pænt Microsoft Math om at ordne ;) )



t