Np=4
xp=np.array([0.5,1,0.5,0])
yp=np.array([0,0.5,1,0.5])
for i in range(Np):
plt.plot(xp[i],yp[i],'ob')
x_aux=np.array([xp[0],xp[1]])
y_aux=np.array([yp[0],yp[1]])
plt.plot(x_aux,y_aux,'--k')
x_aux=np.array([xp[1],xp[2]])
y_aux=np.array([yp[1],yp[2]])
plt.plot(x_aux,y_aux,'--k')
x_aux=np.array([xp[2],xp[3]])
y_aux=np.array([yp[2],yp[3]])
plt.plot(x_aux,y_aux,'--k')
x_aux=np.array([xp[3],xp[0]])
y_aux=np.array([yp[3],yp[0]])
plt.plot(x_aux,y_aux,'--k')
plt.grid()
plt.axis('square')
plt.show()
def rombo(xp,yp,Np):
for i in range(Np):
plt.plot(xp[i],yp[i],'ob')
x_aux=np.array([xp[0],xp[1]])
y_aux=np.array([yp[0],yp[1]])
plt.plot(x_aux,y_aux,'--k')
x_aux=np.array([xp[1],xp[2]])
y_aux=np.array([yp[1],yp[2]])
plt.plot(x_aux,y_aux,'--k')
x_aux=np.array([xp[2],xp[3]])
y_aux=np.array([yp[2],yp[3]])
plt.plot(x_aux,y_aux,'--k')
x_aux=np.array([xp[3],xp[0]])
y_aux=np.array([yp[3],yp[0]])
plt.plot(x_aux,y_aux,'--k')
plt.grid()
plt.axis('square')
Np=4
xp=np.array([0.5,1,0.5,0])
yp=np.array([0,0.5,1,0.5])
rombo(xp,yp,Np)
x=random()
y=random()
def rombo(xp,yp,Np):
for i in range(Np):
plt.plot(xp[i],yp[i],'oy')
x_aux=np.array([xp[0],xp[1]])
y_aux=np.array([yp[0],yp[1]])
plt.plot(x_aux,y_aux,'--k')
x_aux=np.array([xp[1],xp[2]])
y_aux=np.array([yp[1],yp[2]])
plt.plot(x_aux,y_aux,'--k')
x_aux=np.array([xp[2],xp[3]])
y_aux=np.array([yp[2],yp[3]])
plt.plot(x_aux,y_aux,'--k')
x_aux=np.array([xp[3],xp[0]])
y_aux=np.array([yp[3],yp[0]])
plt.plot(x_aux,y_aux,'--k')
plt.grid()
plt.axis('square')
Np=4
xp=np.array([0.5,1,0.5,0])
yp=np.array([0,0.5,1,0.5])
rombo(xp,yp,Np)
xr=0.5+0.5*random()
yr=random()
plt.plot(xr,yr,'ok')
arriba1=0
yl = yp[0]+( (yp[1]-yp[0])/(xp[1]-xp[0]) )*(xr-xp[0])
if yr > yl:
arriba1 = 1
print('El punto esta ARRIBA de la linea')
print('que une a los puntos (x[0],y[0]) y (x[1],y[1])')
print()
if yr <= yl:
arriba1 = 0
print('El punto esta ABAJO de la linea')
print('que une a los puntos (x[0],y[0]) y (x[1],y[1])')
print()
plt.plot(xr,yl,'om')
plt.show()
Np=4
xp=np.array([0.5,1,0.5,0])
yp=np.array([0,0.5,1,0.5])
rombo(xp,yp,Np)
xr=0.5+0.5*random()
yr=random()
plt.plot(xr,yr,'ok')
arriba1=0
yl = yp[0]+( (yp[1]-yp[0])/(xp[1]-xp[0]) )*(xr-xp[0])
if yr>yl : arriba1=1
arriba2=0
yl = yp[1]+( (yp[2]-yp[1])/(xp[2]-xp[1]) )*(xr-xp[1])
if yr>yl : arriba2=1
if arriba1==1 and arriba2==0:
plt.plot(xr,yr,'og')
else:
plt.plot(xr,yr,'or')
print(arriba1,arriba2)
plt.show()
Np=4
xp=np.array([0.5,1,0.5,0])
yp=np.array([0,0.5,1,0.5])
rombo(xp,yp,Np)
for i in range(100):
xr=0.5+0.5*random()
yr=random()
plt.plot(xr,yr,'ok')
arriba1=0
yl = yp[0]+( (yp[1]-yp[0])/(xp[1]-xp[0]) )*(xr-xp[0])
if yr>yl : arriba1=1
arriba2=0
yl = yp[1]+( (yp[2]-yp[1])/(xp[2]-xp[1]) )*(xr-xp[1])
if yr>yl : arriba2=1
if arriba1==1 and arriba2==0:
plt.plot(xr,yr,'og')
else:
plt.plot(xr,yr,'or')
# print(arriba1,arriba2)
plt.show()
for i in range(1000):
xr=0.0+random()
yr=random()
plt.plot(xr,yr,'ok')
arriba1=0
yl = yp[0]+( (yp[1]-yp[0])/(xp[1]-xp[0]) )*(xr-xp[0])
if yr>yl : arriba1=1
arriba2=0
yl = yp[1]+( (yp[2]-yp[1])/(xp[2]-xp[1]) )*(xr-xp[1])
if yr>yl : arriba2=1
arriba3=0
yl = yp[2]+( (yp[3]-yp[2])/(xp[3]-xp[2]) )*(xr-xp[2])
if yr>yl : arriba3=1
arriba4=0
yl = yp[3]+( (yp[3]-yp[0])/(xp[3]-xp[0]) )*(xr-xp[3])
if yr>yl : arriba4=1
if arriba1==1 and arriba2==0 and arriba3==0 and arriba4==1:
plt.plot(xr,yr,'og')
else:
plt.plot(xr,yr,'or')
plt.grid()
plt.axis('square')
plt.show()