miércoles, 9 de octubre de 2019

curvas de Bézier

Curvas de Bézier:

Destacamos este elemento de dibujo de Inkscape ya que las herramientas de dibujo libre que incorporan la mayoría de programas vectoriales se basan en este concepto para el trazado de líneas curvas.
Este tipo de curvas fue desarrollado por Pierre Bézier por encargo de la empresa de automóviles Renault™ que buscaba una representación matemática para definir las transiciones suaves en la curvatura de las líneas de sus automóviles.
Curvas Bézier
Se generan a partir de funciones polinómicas de grado tres[1] que permiten la representación de cualquier forma curvada y evitan la complicación innecesaria de cálculos matemáticos que se produciría usando polinomios de mayor grado.
Cualquier trazado de estas características está definido por una serie de puntos por los que pasa la curva y otros exteriores a ella que definen sus puntos de inflexión, es decir, aquellos en que cambia de curvatura, pasando de cóncava a convexa o viceversa.

Manejadores de la curva
En un trazado Bézier existen "manejadores" en cada uno de sus nodos de manera que se puede alterar la curvatura a voluntad para adaptar el trazo a cualquier forma imaginable, controlando la suavidad de las zonas de transición.




Curvas de B-SPLINE:


Consideremos una parábola parametrizada en un intervalo [u1,u2] por c(u). Usando la multiafinidad de la polar, podemos expresar c(u) como un paso del algoritmo de de Casteljau,
c(u) = c[u,u] =u2-u

u2-u1
c[u1,u]+u-u1

u2-u1
c[u,u2]  ,

y con otro paso del algoritmo de de Casteljau, pero esta vez usando nudos auxiliares u0,u3,
c(u)
=
u2-u

u2-u1
(u2-u

u2-u0
c[u0,u1]+u-u0

u2-u0
c[u1,u2])
+
u-u1

u2-u1
(u3-u

u3-u1
c[u1,u2]+u-u1

u3-u1
c[u2,u3])  ,
(14)

con lo cual hemos expresado cualquier punto c(u) en función de tres vértices, c[u0,u1],c[u1,u2],c[u2,u 3], por ninguno de los cuales pasará en general la curva.  Ejemplo

Nótese que, en el caso particular en el que u0 = u1, u3 = u2, recuperamos precisamente el algoritmo de de Casteljau original para el polígono de control {c0 = c[u1,u1], c1 = c[u1,u2], c2 = c[u2,u2]}.
Por tanto, lo que hemos hecho ha sido generalizar el algoritmo de de Casteljau, mediante la introducción de dos nudos auxiliares. Para que todos los sumandos sean positivos en la parametrización, esta estará definida en el intervalo [u1,u2]. El efecto de esta generalización es acortar la curva de Bézier que correspondería al polígono, lo que nos servirá para unirla a otros tramos de curvas polinómicas.
Resumiendo, los pasos seguidos en el algoritmo han sido:

r = 0)
    c[u0,u1], c[u1,u2], c[u2,u3]
r = 1)
    c[u1,u], c[u,u2]
r = 2)
    c[u,u]  .
(15)

El polígono B-spline para la parábola estará formado por los vértices {d0: = c[u0,u1],d1: = c[u1,u2],d2: = c[u2,u3]}.
Este es el algoritmo de de Boor para una curva parabólica de un único tramo. El algoritmo se generaliza sin dificultad a curvas de cualquier grado, n, y un solo tramo. El polígono estará formado por n+1 vértices, como corresponde a una curva polinómica de grado n, {d0,...,dn}, donde di = c[ui,...,ui+n-1]. La sucesión de nudos estará formada por 2n valores del parámetro, {u0,...,u2n-1}. 
Finalmente el algoritmo de de Boor consiste en la aplicación reiterada del algoritmo de de Casteljau,
d1)i(u)
: =
c[ui+1,...,ui+n-1,u]  ,      i = 0,...,n-1  ,
=
ui+n-u

ui+n-ui
di+u-ui

ui+n-ui
di+1  ,
dr)i(u)
: =
c[ui+r,...,ui+n-1,u < r > ]  , i = 0,...,n-r  , r = 1,...,n  ,
=
ui+n-u

ui+n-ui+r-1
dr-1)i(u)+u-ui+r-1

ui+n-ui+r-1
dr-1)i+1(u)  ,
dn)0(u)
: =
c[u < n > ] =un-u

un-un-1
dn-1)0(u)+u-un-1

un-un-1
dn-1)1(u)  .
(16)


Por supuesto, c(u) = dn)0(u). La parametrización está definida en el intervalo final, [un-1,un]. 






Estrategia hilo-grama:



miércoles, 2 de octubre de 2019

conceptos: traslación,rotación,escalacion,sesgado




Traslación

Una traslación es el movimiento en línea recta de un objeto de una posición a otra. Movimiento de una figura, sin rotarla ni voltearla. "Deslizar".
La figura sigue viéndose exactamente igual, solo que en un lugar diferente. Se aplica una transformación en un objeto para cambiar su posición a lo largo de la trayectoria de una línea recta de una dirección de coordenadas a otra. 

  • Se traslada un punto de la posición coordenada (X, Y) a una nueva posición (x’, y’) agregando distancias de traslación, Tx y Ty, a las coordenadas originales: x’ = x + Tx, y’ = y + Ty. 
  • El par de distancia de traslación (Tx, Ty) se denomina también vector de traslación o bien vector de cambio. 
  • Los polígonos se trasladan agregando las distancias de traslación especificadas a las coordenadas de cada punto extremo de la línea en el objeto. 
  • Los objetos trazados con curvas se trasladan cambiando las coordenadas definidoras del objeto. Para cambiar la posición de una circunferencia o elipse, se trasladan las coordenadas centrales y se vuelve a trazar la figura en la nueva localidad. 
  • Las distancias de traslación pueden especificarse como cualquier número real (positivo, negativo o cero). Si un objeto se traslada más allá de los límites del despliegue en coordenadas del dispositivo, el sistema podría retornar un mensaje de error, suprimir partes del objeto que sobrepasan los límites del despliegue o presentar una imagen distorsionada.



ejemplo en geogebra:




Escalamiento


Una transformación para alterar el tamaño de un objeto se denomina escalamiento. Dependiendo del factor de escalamiento el objeto sufrirá un cambio en su tamaño pasando a ser mayor, o menor en su segmento de longitud. Esta es la transformación del objeto especialmente interesante, pues con ella se consigue el efecto Zoom.


La operación de escalado modifica la distancia de los puntos sobre los que se aplica, respecto a un punto de referencia. Para definir esta operación son necesarios dos factores de escala, Sx y Sy, según las direcciones x e y, y un punto o eje de referencia.

  • Cualquier valor numérico positivo puede asignarse a los factores de escalación Sx y Sy. 
  • Los valores menores que 1 reducen el tamaño de los objetos; 
  • Los valores mayores que 1 producen un agrandamiento. 
  • Si se especifica un valor de 1 para Sx y Sy se mantiene inalterado el tamaño de los objetos. 
  • Cuando a Sx y Sy se les asigna el mismo valor, se produce una escalación uniforme, la cual mantiene las propiedades relativas del objeto a escala. 

  • Escalado uniforme: El factor de escala es el mismo en las dos coordenadas, es decir Sx=Sy, y por lo tanto varía el tamaño pero no la forma del objeto.
  • Escalado diferencial: El factor de escala es distinto en cada dirección, es decir Sx es distinto de Sy, y se produce una distorsión en la forma del objeto.

           rotación

La transformación de puntos de un objeto situados en trayectorias circulares es llama rotación. Este tipo de transformación se especifica con un ángulo de rotación, el cual determina la cantidad de rotación de cada vértice de un polígono. 
Se pueden hacer que los objetos giren alrededor de un punto arbitrario o el punto pivote de la transformación de rotación puede colocarse en cualquier parte en el interior o fuera de la frontera exterior de un objeto, el efecto de la rotación consiste en oscilar el objeto con respecto a este punto interno. 
Para rotar un objeto (en este caso bidimensional), se ha de determinar la cantidad de grados en la que ha de rotarse la figura. Para ello, y sin ningún tipo de variación sobre la figura, la cantidad de ángulo ha de ser constante sobre todos los puntos. 

Los puntos también pueden ser rotados un ángulo θ con respecto al origen


En forma matricial



En la figura se muestra la rotación de la casa 45º, con respecto al origen.

  • Para generar una rotación, se especifica el ángulo de rotación 0, y el punto de rotación (pivote) sobre el cual el objeto será rotado. 
  • Los ángulos de rotación positivos definen una rotación en sentido contrario a las manecillas del reloj sobre el punto pivote (del eje X1 al eje X2), entonces los ángulos de rotación negativos producen una rotación en el sentido de las manecillas (del eje X2 al eje X1). 
  • Las Rotaciones son movimientos directos, es decir, mantienen la forma y el tamaño de las figuras. 
  • El sentido de rotación puede ser positivo (en contra del sentido horario) o negativo (a favor del sentido horario).              

                                                                     ejemplos en geogebra:




         Sesgado

El sesgado es un tipo de transformación no rígida, pues existe una deformación del objeto original al aplicar dicha transformación. Existen dos tipos de sesgo: sesgo horizontal y sesgo vertical. 
  • Sesgo horizontal. Las coordenadas adyacentes al eje x permanecen fijas, los valores de y no cambian. 
  • Sesgo vertical. Las coordenadas adyacentes al eje y permanecen fijas, los valores de x no cambian. 

Unidad 5: Introducción a la animación por computadora

Introducción a la animación por computadora 5.1 Historia, evolución y aplicación de la graficación por computadora. 1919-1990 Cr...