es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo dibujar un semicírculo en un gráfico?

Estoy tratando de dibujar algunos semicírculos en un gráfico utilizando las funciones trigonométricas en R.
Aquí está lo que tengo:

matPoints <- as.data.frame(cbind(X=c(-1, -(sqrt(3)/2), -(sqrt(2)/2), -0.5, 0, 0.5, sqrt(2)/2, sqrt(3)/2, 1), Y=c(0, 0.5, sqrt(2)/2, sqrt(3)/2, 1, sqrt(3)/2, sqrt(2)/2, 0.5, 0)))
plot(x = matPoints$X * W, y = matPoints$Y * W)

Por el momento, imprime cada punto en el gráfico. Lo que quiero hacer aquí es trazar una línea suave entre los puntos para que me dé un semicírculo hermoso con centro (0, 0) y escala W.

¿Alguna solución?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes lograr esto utilizando la función curve en R. Aquí tienes un código de ejemplo para dibujar una semicírculo centrado en (0, 0) con radio W:

    W <- 2 # elige un valor para el radio
    
    # define la función para la mitad superior del círculo
    upper_circle <- function(x, r) sqrt(r^2 - x^2)
    
    # dibuja la mitad inferior del círculo
    plot(x = matPoints$X * W, y = matPoints$Y * W, type = "l", xlim = c(-W, W), ylim = c(-W, W), asp = 1)
    
    # dibuja la mitad superior del círculo usando la función curve
    curve(upper_circle(x, W), from = -W, to = W, add = TRUE)
    

    La función curve toma una función como entrada y la representa sobre un rango de valores de x. En este caso, hemos definido la función upper_circle para calcular la altura de la mitad superior del círculo dada la coordenada x y el radio W. Luego, utilizamos curve para representar esta función en el rango desde -W hasta W, y add = TRUE para añadirlo al gráfico existente.

    Esto debería darte un semicírculo suave y agradable utilizando los puntos que has definido. Puedes ajustar el valor de W para cambiar el tamaño del círculo.

Comments are closed.