2 votos

¿Cómo puedo encontrar los puntos de un círculo?

Digamos que tiene un centro de $(5, 5)$ y un radio de $2$ . Si usted fue por cada valor x en $\{3, 4, 5, 6, 7\}$ ¿cómo encontrarías el valor de y?

EDIT: Tengo este código en C#

for (int i = centerx - radius; i <= centerx + radius; i++)
{
double y0 = centery + Math.Sqrt((double)(radius ^ 2 - (i - centerx) ^ 2));
double y1 = centery - Math.Sqrt((double)(radius ^ 2 - (i - centerx) ^ 2));
int y2 = Convert.ToInt32(Math.Round(y0));
int y3 = Convert.ToInt32(Math.Round(y1));

Esto da unos resultados extraños, hace una línea rara, no se parece en nada a un círculo. Se agradece cualquier ayuda.

EDIT2: Lo mismo que antes

int[] array_x = new int[radius*2+1];
int x = 0;
for (int i = -radius; i <= radius; i++)
{
array_x[x] = i;
x++;
}
for (int i = 0; i <= array_x.Length; i++)
{
double y0 = centery + Math.Sqrt((double)(radius ^ 2 - (array_x[i] - centerx) ^ 2));
double y1 = centery - Math.Sqrt((double)(radius ^ 2 - (array_x[i] - centerx) ^ 2));
int y2 = Convert.ToInt32(Math.Round(y0));
int y3 = Convert.ToInt32(Math.Round(y1));

5voto

Drew Jolesch Puntos 11

Una pista: la ecuación de a círculo viene dada por $$(x - a)^2 + (y-b)^2 = r^2$$

$$\text{OR}\quad y=b\pm \sqrt{r^2-(x-a)^2}$$

donde $(a, b)$ es el centro del círculo, y $r$ es radio .

$(1)$ ¿Cuál es su centro? Así que $a = b = \;?\;\;$ Y el radio $\;r=\;?\;\;$
$\quad\;$ Sólo tienes que sustituir los valores que tienes en la ecuación de un círculo para definir tu círculo.

$(2)$ A continuación, utilice cada uno de sus $x$ -valores para determinar/resolver el correspondiente $y$ -valores utilizando
$\quad\;$ la fórmula a la que se llega en $(1)$ . (Debería encontrar dos $y$ -valores para cada $x$ .)


2voto

Pista: Su círculo es $$(x-5)^2+(y-5)^2=2^2$$ ¿Puedes resolver para $y$ (al final habrá dos soluciones, una el semicírculo superior y otra en el inferior)? Y aunque no se pueda, no es necesario. Sólo tienes que introducir $x$ y obtener los dos valores correspondientes para $y$

1voto

Se comienza con $$(x-5)^2+(y-5)^2=2^2$$ que da $$y=5\pm \sqrt{4-(x-5)^2}$$ y luego se sustituyen los distintos valores de $x$ .

1voto

marty cohen Puntos 33863

Creo que está haciendo la pregunta equivocada. En lugar de preguntar "¿Cuál es la $y$ por el que se especifica $x$ ?", pregunte "¿Qué $(x, y)$ pares debería usar para hacer el círculo más bonito".

La respuesta más sencilla a esto es dividir el círculo en un número de segmentos circulares iguales con $(x_k, y_k) = (a+r \cos{k \theta}, b+r \sin{k \theta})$ , para $k = 0 $ a $n-1$ y $\theta = 2 \pi/n$ , donde $n$ es el número de puntos que quieres tener en el círculo.

Esto puede ser optimizado computacionalmente por lo que sólo se necesitan un par de multiplicaciones y sumas después de calcular los dos primeros puntos, y también se puede utilizar el algoritmo de generación de círculos de Bresenham de Bresenham (búsquelo) si sólo quiere dibujar un círculo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X