2013-06-10 21 views
7

Próbuję utworzyć geometrię koła w MySQL używając współrzędnych środka i promienia. Szukałem wszędzie ... wszystko, co mogłem znaleźć w Dokumencie MySQL na stronie, dotyczyło wielokątów. Być może szukam w niewłaściwym miejscu. czy ktoś może mi pomóc z odpowiednim SQL, który pomoże mi utworzyć tabelę, która przechowuje tę geometrię Circle jako jedną z kolumn w tabeli? Ponadto, nie jestem nawet pewien, czy istnieje sposób, aby to zrobić w MySQL? .. Wersja, której używam, to MySQL 5.6.Jak utworzyć geometrię koła o promieniu i współrzędnych środka, używając rozszerzeń przestrzennych MySQL?

Z góry dziękuję.

Odpowiedz

8

Jak MySQL v5.6.1, można użyć Buffer(g, d):

Zwraca geometrię, która reprezentuje wszystkie punkty, których odległość od wartości geometrii g jest mniejsza lub równa odległości d .

Oczywiście, w przypadku g powinna być punktem na środku koła i d powinno być jej promień.

+0

Świetnie. Dzięki za pomoc w zobaczeniu tego. Jakoś przeoczyłem ten. jeszcze jedno. czy jest to dostępne dopiero od 5.6.1 ... czy jest coś podobnego w poprzednich wersjach. Geometria koła wydaje się być podstawowym przypadkiem i wydaje się dziwne, że ten rodzaj geometrii nie jest obsługiwany. – user2052129

+0

@ user2052129: Nie, nie ma nic podobnego we wcześniejszych wersjach - musiałbyś ręcznie zbudować wielokąt o wystarczającej rozdzielczości. – eggyal

+0

Dzięki ... Jakie dane mają znaczenie? .. czy to jest mile czy metry ...? gdzie i jak możemy to kiedykolwiek ustawić. – user2052129

1

Istnieją dwie Części: A.Do podanych badanych punktów należy sprawdzić ich związek z danym okręgiem. B. Chcesz generować punkty na obwodzie danego koła.

A. Tak, Przede wszystkim zmień odległość między danym punktem (punktem testowym) a punktem środkowym okręgu. Oba te punkty są zdefiniowane w szerokości i długości geograficznej. Formuła odległości między dwoma punktami (x1, y1) i (x2, y2) to odległość d = sqrt [(x2-x1)^2 + (y2-y1)^2]. Teraz,

  1. Jeśli odległość ta jest mniejsza niż promień okręgu, to punkt testowy znajduje się wewnątrz kręgu.
  2. Jeśli ta odległość jest większa niż promień, to testowany punkt znajduje się poza okręgiem.
  3. Jeśli ta obliczona odległość jest równa promieniu koła, to testowany punkt znajduje się na kole, tj. Na obwodzie koła.

B. W okręgu całkowity kąt theta wynosi 360 stopni lub 2 * Pi w radianach. Dla danego okręgu, którego środkiem jest (x1, y1), a promień jest r.

X = x1 + r * cos (teta)

Y = Y1 + r * sin (teta)

gdzie teta działa od zera do 2, a * Pi Pi jest 3,1415.

W zależności od tego, jak to zrobisz. Przykład: jeśli chcesz 10 punktów w kółku, wtedy inkrement = (2 * Pi-Zero)/10.

Feta theta wynosi zero, następnie theta wynosi zero + przyrost, następnie theta wynosi zero + przyrost + skok, tzn. 2 * przyrost, a następnie zero + 3 * przyrost i tak dalej. chyba że otrzymasz theta równą 2 * Pi.

Dla wszystkich powyższych thetas obliczyć x i y. Te wszystkie współrzędne X i Y znajdują się na obwodzie koła.