# BUILD DATA FRAME
Radius <- 1
Horizontal_Coordinates <- seq(-Radius, Radius, 0.01)
Positive_Vertical_Coordinates <- sqrt((Radius ^ 2) - (Horizontal_Coordinates ^ 2))
Negative_Vertical_Coordinates <- -sqrt((Radius ^ 2) - (Horizontal_Coordinates ^ 2))
Circle_Coordinates <- data.frame(
Horizontal_Coordinates = c(
Horizontal_Coordinates,
rev(Horizontal_Coordinates),
Horizontal_Coordinates[1]
),
Vertical_Coordinates = c(
Positive_Vertical_Coordinates,
rev(Negative_Vertical_Coordinates),
Positive_Vertical_Coordinates[1]
)
)
# ASSIGN RANDOM POINTS
set.seed(122524)
Random_Angle_1 <- runif(1, 0, (2 * pi))
Random_Angle_2 <- runif(1, 0, (2 * pi))
Point_1 <- c(cos(Random_Angle_1), sin(Random_Angle_1))
Point_2 <- c(cos(Random_Angle_2), sin(Random_Angle_2))
# SUBSET DATA FRAME
sub <- subset(
Circle_Coordinates,
(
Horizontal_Coordinates > min(Point_1[1], Point_2[1]) &
Horizontal_Coordinates < max(Point_1[1], Point_2[1]) &
sign(Horizontal_Coordinates) == sign(Point_1[1]) &
sign(Horizontal_Coordinates) == sign(Point_2[1])
) &
(
Vertical_Coordinates > min(Point_1[2], Point_2[2]) &
Vertical_Coordinates < max(Point_1[2], Point_2[2]) &
sign(Vertical_Coordinates) == sign(Point_1[2]) &
sign(Vertical_Coordinates) == sign(Point_2[2])
)
)
# PLOT CIRCLE AND POINTS
plot(0, type = "n", xlim = c(-(Radius * 1.05), (Radius * 1.05)), ylim = c(-(Radius * 1.05), (Radius * 1.05)), xlab = "", ylab = "")
polygon(Circle_Coordinates$Horizontal_Coordinates, Circle_Coordinates$Vertical_Coordinates)
for(i in 1:nrow(sub)) {
points(
sub$Horizontal_Coordinates[i],
sub$Vertical_Coordinates[i],
pch = 19,
col = 4
)
}
points(Point_1[1], Point_1[2], pch = 19, col = 2)
points(Point_2[1], Point_2[2], pch = 19, col = 2)
To embed this project on your website, copy the following code and paste it into your website's HTML: