library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
set.seed(50)
xx=runif(5000,2,10)
yy=runif(5000,2,10)
plot(xx,yy,cex=0.3)
points(6,6,cex=8,col="blue")

set.seed(50)
xc <- 6 # center x_c or h
yc <- 6 # y_c or k
a <- 2 # major axis length
b <- 1 # minor axis length

xx=runif(5000,2,10)
yy=runif(5000,2,10)
t <- seq(0,7 , 0.01) 
x <- xc + a*cos(t)
y <- yc + b*sin(t)
plot(xx,yy,cex=0.3)
points(x,y,col="blue",cex=0.3)

xc <- 6 # center x_c or h
yc <- 6 # y_c or k
a <- 2 # major axis length
b <- 1 # minor axis length
xx=runif(5000,2,10)
yy=runif(5000,2,10)
m=data.frame(xx,yy)
m=filter(m,xx>4,xx<8,yy<7,yy>5)
l=select(m,xx)
k=select(m,yy)
l=data.matrix(l)
k=data.matrix(k)
t <- seq(0,7 , 0.01) 
x <- xc + a*cos(t)
y <- yc + b*sin(t)
plot(xx,yy,cex=0.3)
points(x,y,col="blue",cex=0.3)
points(l,k,col="red",cex=0.1)

xc <- 6 # center x_c or h
yc <- 6 # y_c or k
a <- 2 # major axis length
b <- 1 # minor axis length
xx=runif(100000,2,10)
yy=runif(100000,2,10)
m=data.frame(xx,yy)
m=filter(m,xx>4,xx<8,yy<7,yy>5)
l=select(m,xx)
k=select(m,yy)
l=data.matrix(l)
k=data.matrix(k)
t <- seq(0,70 , 0.01) 
x <- xc + a*cos(t)
y <- yc + b*sin(t)
plot(xx,yy,cex=0.1)
points(l,k,col="red",cex=0.1)
points(x,y,col="blue",cex=0.1)

library(plotrix)
set.seed(123)
z = runif(5000, 2, 10)
y = runif(5000, 2, 10)
plot(2:10, 2:10,
     type = "n", 
     xlab = "eje x",
     ylab = "eje y") # Generamos un plot sin gráficos internos (limpio)
points(z,y,cex=0.01)
draw.ellipse(6,6,2,1, border = 'blue') # Dibuja la elipse
points_quarter = 0

for (i in 1:5000){  #tener en cuenta la ecuacion canonica
  if ((((z[i]-6)^2)/4)+ (((y[i]-6)^2)/1)<=1 ){
    points_quarter = points_quarter + 1
    points(z[i], y[i], col= "red", pch=16, cex=0.3) # Condicional que dibuja 1/4 de la elipse
  }
}

areaconformula= pi * 1 * 2; areaconformula
## [1] 6.283185
## El area calculada con puntos es:
areacalculadaconpuntos = ((points_quarter)/76); areacalculadaconpuntos
## [1] 6.526316