usar titledborder setborder icon codigo java r math parametric-equations

java - titledborder - Formas concéntricas suavemente sombreadas impulsadas por ecuaciones



titledborder java (2)

Prueba esto en R:

# create palette greyScale <- colorRampPalette(c("black","white")) # function to draw shape plotHeart <- function(r, col){ t <- seq(0,2*pi,length.out=100) x <- r*sin(t)^3 y <- (13*r/16)*cos(t) - (5*r/16)*cos(2*t) - (2*r/16)*cos(3*t) - (r/16)*cos(4*t) polygon(x,y,col=col,border=NA) } # create new plot canvas plot.new() # limits are approximate here plot.window(xlim=c(-16,16),ylim=c(-16,13)) # use mapply to loop mapply(plotHeart,seq(16,0,length.out=100),greyScale(100))

Lo que resulta en:

Esto funciona mediante el dibujo repetido de polígonos rellenos de tamaño decreciente y colores diferentes uno encima del otro. Para responder tu pregunta:

(1) Esto fue producido por mi máquina (una computadora portátil modesta Core 2 duo) en 0.09 segundos. Pueden ser otros lenguajes / implementaciones que son más rápidos, pero esto me parece lo suficientemente rápido.

(2) Una forma plana formada por líneas que no se cruzan con otras generalmente se llama un polígono simple.

Fondo

Buscando crear transiciones de video interesantes (en escala de grises).

Problema

Dadas las equations que representan una forma cerrada y simétrica, trace el contorno y sombree concéntricamente la forma hacia su centro.

Ejemplo

Considera las siguientes ecuaciones:

x = 16 * sin(t)^3 y = 13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t) t = [0:2 * pi]

Cuando se grafica:

Cuando está sombreado, se asemejaría (no se muestra completamente sombreado, pero es suficiente para mostrar la idea):

Observe que el sombreado es más oscuro en el exterior (por ejemplo, # 000000 RGB hexadecimal), luego se aclara a medida que se llena hacia el centro. El centro sería un punto blanco (por ejemplo, #FFFFFF).

Preguntas

  1. ¿Cuál sería la forma más conveniente de producir imágenes en escala de grises de alta resolución y con sombra concéntrica, como el corazón sombreado de arriba?
  2. ¿Cómo se llaman formalmente tales formas simétricas y cerradas?

¡Gracias!

Ideas

  • Utilice una biblioteca como http://code.google.com/p/jmathplot/
  • Utilice GNUPlot
  • Utilizar R
  • Trazar utilizando Wolfram Alpha, use ImageMagick para crear versiones concéntricas más pequeñas

Usando Gráficos 2D , este example altera la transparencia de los círculos concéntricos usando drawOval() para lograr un efecto similar, pero el enfoque se puede extender para draw() cualquier clase que implemente la interfaz Shape . El método AffineTransform createTransformedShape() de AffineTransform se puede usar para traducir y escalar el contorno de forma concéntrica.