Un patrulateral este un poligon care are patru laturi, patru unghiuri și patru vârfuri. Un poligon înseamnă că cifra este o formă închisă, ceea ce înseamnă că ultimul segment de linie se conectează înapoi la primul, închizând eficient o zonă.
De obicei, ne gândim la cvadrilaterale ca pătrate, dreptunghiuri, paralelograme, trapezoide, rombusuri sau zmei. (Am fost impresionat că nepoata mea de patru ani a cunoscut-o pe ultima, deși a numit-o diamant!)
Cu toate acestea, un poligon se poate intersecta. O stea cu cinci fețe este un exemplu, în care părțile laterale sunt conectate la vârfuri alternative.
De asemenea, un carilateral se poate intersecta. În diagrama următoare, cvadrilateralul inițial are punctele A (0,0), B (4,0), C (3,3), D (1,4). Quadrilateralul de sine este format din patrulateralul original prin schimbarea punctului D de la (1,4) la (2, -2), astfel încât lateral CD traversează AB).

Acest patrulateral de sine stătător este încă pe patru fețe și închis, deci nu este mai puțin un patrulateral decât originalul.
Iată câteva cod R:
# Self-intersecting quadrilateral
library(ggplot2)
# Define coordinates for original quadrilateral
original_quad <- data.frame(
x1 = c(0, 4, 3, 1),
y1 = c(0, 0, 3, 4),
x2 = c(4, 3, 1, 0),
y2 = c(0, 3, 4, 0),
group = c("AB", "BC", "CD", "DA"),
labels = c("A", "B", "C", "D")
)
# Define coordinates for self-intersecting quadrilateral
# Shift point D from (1,4) to (2, -2), so side CD crosses AB)
stretched_quad <- data.frame(
x1 = c(0, 4, 3, 2),
y1 = c(0, 0, 3, -2),
x2 = c(4, 3, 2, 0),
y2 = c(0, 3, -2, 0),
group = c("AB", "BC", "CD", "DA"),
labels = c("A", "B", "C", "D")
)
# Define colors for each side
color_map <- c("AB" = "red", "BC" = "blue", "CD" = "green", "DA" = "purple")
# Function to plot the quadrilateral
plot_quad <- function(data, title, x_lim, y_lim) {
ggplot(data) +
geom_segment(aes(x = x1, y = y1, xend = x2, yend = y2, color = group), size = 1.5) + # Draw each side
geom_point(aes(x = x1, y = y1), size = 3, color = "black") + # Show points
geom_text(aes(x = x1, y = y1, label = labels), vjust = -1, hjust = -0.5, size = 6, fontface = "bold") + # Label A, B, C, D
scale_color_manual(values = color_map) +
coord_fixed() +
xlim(x_lim(1), x_lim(2)) +
ylim(y_lim(1), y_lim(2)) +
theme_minimal() +
ggtitle(title)
}
# Expanded limits for full visibility
x_range <- c(-1, 7)
y_range <- c(-3, 7)
# Plot the original quadrilateral
p1 <- plot_quad(original_quad, "Original Quadrilateral", x_range, y_range)
# Plot the self-intersecting quadrilateral
p2 <- plot_quad(stretched_quad, "Self-Intersecting Quadrilateral", x_range, y_range)
# Display both plots
library(gridExtra)
grid.arrange(p1, p2, ncol = 2)
Sfârşit
