Académique Documents
Professionnel Documents
Culture Documents
Facultad de Ingeniería
CÓDIGOS (PYTHON):
# -*- coding: utf-8 -*-"""
''' el primer paso es importar las librerías como se trata de una gráfica de dos
dimensiones solo se necesitan dos librerías las cuales son numpy y matplorlib'''
'asignar numpy=np'
import numpy as np
import matplotlib.pyplot as plt
'''definimos las dimensiones que van a tener la figura resultante final es una proporción
no hay dimensiones exactas como centímetros o pulgadas, la primera dimensión se
refiere al ancho y la segunda dimensión el largo'''
'al mencionar plt llamamos a la libreria plt'
fig = plt.figure(figsize=(10, 5))
ax = fig.add_subplot(111)
'''Esta línea es para determinar una gráfica dentro de la figura que establecimos en la
línea anterior'''
'''Radio del circulo que usaremos para un cicloide'''
'-en que intervalo voy a trabajar y en cuentas partes voy a dividir'
t = np.linspace(0, 1, 100)
''' Rango del ángulo de giro que usaremos para graficar el cicloide, la función tiene tres
argumentos o valores que deben incluirse el primero es el valor inicial, el segundo el
valor final y el tercero es la cantidad de divisiones'''
x = 4*(1-t)**3 + 84*t*(1-t)**2 +150*(t**2)*(1-t) + 40*(t**3)
'''Es el valor de x en función de t que es nuestro parámetro'''
y = 1*(1-t)**3 + 144*t*(1-t)**2 +126*(t**2)*(1-t) + 5*(t**3)
'''Es el valor de y en función de t'''
'top=no se va a ver la linea'
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
'''Estas líneas evitan que al lado derecho y en la parte superior se muestren los ejes
poniéndoles un color nulo'''
'bottom=al fondo'
'en el eje y los numeros van a estar a la izquierda'
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
'''Ubicamos los valores que aparecen en la recta debajo de la recta en el eje x y a la
izquierda en la recta del eje y'''
'''ax.spines['left'].set_position('center')'''
''' Ubicamos el eje y en el centro de la gráfica'''
ax.plot(x, y,'r',linewidth="2")
'''Definimos las coordenadas de la gráfica, el color que la línea va a tener y el ancho
de la línea'''
ax.set_xlim(0,50)
'''definimos los límites de la gráfica en el eje x'''
ax.set_ylim(0,50)
'''definimos los límites de la gráfica en el eje y'''
ax.set_xlabel('$eje x$',fontsize = 18) #Nombramos el eje X
ax.set_ylabel('$eje y$',fontsize = 18) #Nombramos el eje Y
'''definimos los puntos de control'''
'''Punto 0'''
x0 = 4
y0 = 1
'''Punto 1'''
x1 = 28
y1 = 48
'''Punto 2'''
x2 = 50
y2 = 42
'''Punto 3'''
x3 = 40
y3 = 5
verts = [(x0, y0),(x1, y1),(x2, y2),(x3,y3)]
xs, ys = zip(*verts)
'punto significa asterisco'
ax.plot(xs, ys, '.--', lw=2, color='orange', ms=18)
'lw grosor de linea, ms tamaño de los puntos'
ax.text(4, -0.04, 'P0')
ax.text(29, 48, 'P1')
ax.text(46, 47, 'P2')
ax.text(40, 8, 'P3')
plt.show()
GRÁFICA:
B) En el dibujo de la parte 1 parece que la recta tangente en P0 pasa por P1 y la
recta tangente en P3 pasa por P2. Pruebe que esto es así.
x4
Y=1+141c y=1+141 ( )
72
Tenemos que:
141x 492
y
72 72
x 40
Y=5+141c y=5+141 ( )
72
Tenemos que:
141x 5640
y
72 72
CÓDIGOS (PYTHON)
# -*- coding: utf-8 -*-
''' el primer paso es importar las librerías como se trata de una gráfica de dos
dimensiones solo se necesitan dos librerías las cuales son numpy y matplorlib'''
import numpy as np
import matplotlib.pyplot as plt
'''definimos las dimensiones que van a tener la figura resultante final es una proporción
no hay dimensiones exactas como centímetros o pulgadas, la primera dimensión se
refiere al ancho y la segunda dimensión el largo'''
fig=plt.figure(figsize=(10,5))
ax= fig.add_subplot(111)
t=np.linspace(0,1,100)
'''definimos los puntos de control'''
''' Punto 0'''
x0=4
y0=1
''' Punto 1 '''
x1=28
y1=48
'''Punto 2 '''
x2=50
y2=42
''' Punto 3 '''
x3=40
y3=5
verts= [(x0,y0),(x1,y1),(x2,y2),(x3,y3)]
xs,ys=zip(*verts)
ax.plot(xs,ys,'.-',lw=2, color='brown',ms=15)
ax.text(4.5,4,'P0')
ax.text(28,49, 'P1')
ax.text(47.5,41.7, 'P2')
ax.text(40.3,5, 'P3')
x=x0*((1-t)**3)+3*x1*t*((1-t)**2)+3*x2*(t**2)*(1-t)+x3*(t**3)
y=y0*((1-t)**3)+3*y1*t*((1-t)**2)+3*y2*(t**2)*(1-t)+y3*(t**3)
t1=0
t2=1
mx0=-3*x0*((1-t1)**2)+3*x1*(((1-t1)**2)-(2*t1)*(1-t1))+3*x2*((2*t1)*(1-t1)-
(t1**2))+3*x3*(t1**2)
my0=-3*y0*((1-t1)**2)+3*y1*(((1-t1)**2)-(2*t1)*(1-t1))+3*y2*((2*t1)*(1-t1)-
(t1**2))+3*y3*(t1**2)
mx3=-3*x0*((1-t2)**2)+3*x1*(((1-t2)**2)-(2*t2)*(1-t2))+3*x2*((2*t2)*(1-t2)-
(t2**2))+3*x3*(t2**2)
my3=-3*y0*((1-t2)**2)+3*y1*(((1-t2)**2)-(2*t2)*(1-t2))+3*y2*((2*t2)*(1-t2)-
(t2**2))+3*y3*(t2**2)
r=np.linspace(-20,100,500)
tgx0=x0+r*mx0
tgy0=y0+r*my0
tgx3=x3+r*mx3
tgy3=y3+r*my3
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.plot(x,y,'-r',linewidth='2')
ax.plot(tgx0,tgy0,'-g',linewidth='2')
ax.plot(tgx3,tgy3,'-y',linewidth='2')
ax.set_xlim(3, 50)
ax.set_ylim(-2,49)
ax.set_xlabel('$x$',fontsize=18)
ax.set_ylabel('$y$',fontsize=18)
plt.show()
plt.savefig("UnirPuntos.pdf",format='pdf')
GRÁFICA:
C) Encuentre la parametrización de la evoluta de la curva de Bézier dada y
dibújela.
ax.plot(xs,ys,'.--',lw=2, color='skyblue',ms=15)
ax.text(34,14,'P0')
ax.text(25,3, 'P1')
ax.text(26,43, 'P2')
ax.text(35,33, 'P3')
x=x0*((1-t)**3)+3*x1*t*((1-t)**2)+3*x2*(t**2)*(1-t)+x3*(t**3)
y=y0*((1-t)**3)+3*y1*t*((1-t)**2)+3*y2*(t**2)*(1-t)+y3*(t**3)
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.plot(x,y,'-r',linewidth='2')
ax.set_xlim(3, 52)
ax.set_ylim(-2,50)
ax.set_xlabel('$x$',fontsize=18)
ax.set_ylabel('$y$',fontsize=18)
plt.show()
plt.savefig("UnirPuntos.pdf",format='pdf')
GRAFICA: