Area de un triangulo

import matplotlib.pyplot as plt
import numpy as np
import math
from random import *

(x1,y1)=(-1,-1)
(x2,y2)=(3,-1)
(x3,y3)=(3,4)
(x4,y4)=(-1,4)
(x5,y5)=(0,4)

x_aux1 = np.array([x1,x2,x3,x4,x1])
y_aux1 = np.array([y1,y2,y3,y4,y1])
plt.plot(x_aux1,y_aux1,'-k')

x_aux2 = np.array([x1,x5,x2,x1])
y_aux2 = np.array([y1,y5,y2,y1])
plt.plot(x_aux2,y_aux2,'-b')

plt.grid()
plt.show()
plt.plot(x_aux1,y_aux1,'-k')
plt.plot(x_aux2,y_aux2,'-b')

##############
xr = -1+4*random()
yr = -1+5*random()
plt.plot(xr,yr,'ok')
###########

plt.grid()
plt.show()
plt.plot(x_aux1,y_aux1,'-k')
plt.plot(x_aux2,y_aux2,'-b')

##############
for i in range(500):
 xr = -1+4*random()
 yr = -1+5*random()
 plt.plot(xr,yr,'.k')
###########

plt.grid()
plt.show()
plt.plot(x_aux1,y_aux1,'-k')
plt.plot(x_aux2,y_aux2,'-b')

#############
N=500
contador=0
for i in range(N):
 xr = -1+4*random()
 yr = -1+5*random()

 if xr<0:     
  yl = y1 + ((y5-y1)/(x5-x1))*(xr-x1)
  if yr<yl:
   contador=contador+1
   plt.plot(xr,yr,'.g')   
  else:   
   plt.plot(xr,yr,'.r')

 if xr>0:     
  yl = y1 + ((y5-y2)/(x5-x2))*(xr-x2)
  if yr<yl:
   contador=contador+1
   plt.plot(xr,yr,'.g')   
  else:   
   plt.plot(xr,yr,'.r')
 

###########

plt.grid()
plt.show()
def triangulo(N):
 plt.plot(x_aux1,y_aux1,'-k')
 plt.plot(x_aux2,y_aux2,'-b')

#############
 N=500
 contador=0
 for i in range(N):
  xr = -1+4*random()
  yr = -1+5*random()

  if xr<0:     
   yl = y1 + ((y5-y1)/(x5-x1))*(xr-x1)
   if yr<yl:
    contador=contador+1
    plt.plot(xr,yr,'.g')   
   else:   
    plt.plot(xr,yr,'.r')

  if xr>0:     
   yl = y1 + ((y5-y2)/(x5-x2))*(xr-x2)
   if yr<yl:
    contador=contador+1
    plt.plot(xr,yr,'.g')   
   else:   
    plt.plot(xr,yr,'.r')
 area=(contador/N)*20
 return(area)

###########
a=triangulo(500)
print(a)
plt.grid()
plt.show()
def triangulo2(N):
 contador=0
 for i in range(N):
  xr = -1+4*random()
  yr = -1+5*random()
  if xr<0:     
   yl = y1 + ((y5-y1)/(x5-x1))*(xr-x1)
   if yr<yl:
    contador=contador+1
  if xr>0:     
   yl = y1 + ((y5-y2)/(x5-x2))*(xr-x2)
   if yr<yl:
    contador=contador+1
 aux=(contador/N)*20
 return(aux)

area = triangulo2(100)
print(area)
area = triangulo2(101)
print(area)
area = triangulo2(102)
print(area)
area = triangulo2(103)
print(area)
10.0
9.702970297029703
11.176470588235293
10.679611650485437
Ne =100
xe=np.zeros(Ne)
ye=np.zeros(Ne)
for i in range(Ne):
 xe[i] = 100+i
 ye[i] = triangulo2(int(xe[i]))
plt.plot(xe,ye,'-k')
Ne =100
xe=np.zeros(Ne)
ye=np.zeros(Ne)
for i in range(Ne):
 xe[i] = 1000+i
 ye[i] = triangulo2(int(xe[i]))
plt.plot(xe,ye,'-k')
Ne =100
xe=np.zeros(Ne)
ye=np.zeros(Ne)
for i in range(Ne):
 xe[i] = 1000+i
 ye[i] = triangulo2(int(xe[i]))
plt.plot(xe,ye,'-k')
Ne =100
xe=np.zeros(Ne)
ye=np.zeros(Ne)
for i in range(Ne):
 xe[i] = 100000+i
 ye[i] = triangulo2(int(xe[i]))
plt.plot(xe,ye,'-k')