2010-01-19 16 views
25

Korzystanie z C#:Określenie współrzędnych na skraju kręgu

Jak mogę dostać (x, y) współrzędne na brzegu koła o danym stopniu, jeśli mam współrzędne centrum i promień ?

Prawdopodobnie SIN, TAN, COSIN i inny gatunek dziesięć matematyki zaangażowany ... :)

+0

To rodzaj pytania zadać na http://mathoverflow.net/ – Lucero

+5

@Lucero: Nie wątpię, to można by liczyć jako „badania poziom matematyki pytanie " – Niki

+0

@nikie, prawda, ale z drugiej strony jest to jeszcze mniej pytanie programowania. To prosta geometria. – Lucero

Odpowiedz

73

To nie ma nic wspólnego z C#. W grę wchodzi tylko elementarna matematyka.

x = x0 + r * cos(theta) 
y = y0 + r * sin(theta) 

teta w radianach, X0, Y0, i są współrzędne środka, R jest promieniem, a kąt ten jest mierzony w lewo od osi x. Ale jeśli chcesz go w C#, a kąt jest w stopniach:

double x = x0 + r * Math.Cos(theta * Math.PI/180); 
double y = y0 + r * Math.Sin(theta * Math.PI/180); 
+0

+1, za szybkie łatwe głosy: P – AnthonyWJones

+1

To zabawne na tego typu pytania, jak prawie identyczne są odpowiedzi. Nawet w dół do struktury odpowiedzi: P –

+1

@ tm1rbrt - Konwersja stopni do radian jest już w moim kodzie. –

3

Na okręgu o pochodzeniu (j, k), promień r, a kąt t w radianach:

x(t) = r * cos(t) + j  
    y(t) = r * sin(t) + k 
8

pomocą Pitagorasa twierdzenie (w którym X 1, Y 1 jest punktem krawędzi):

x1 = x + r cos (teta)
Y1 = y + r
sin (teta)

C#, to wygląda następująco:

x1 = x + radius * Math.Cos(angle * (Math.PI/180)); 
y1 = y + radius * Math.Sin(angle * (Math.PI/180)); 

gdzie wszystkie zmienne są doubles i angle jest w stopniach