Gegeben ist jeweils eine Gerade g und ein Punkt P. Gesucht ist eine Parametergleichung der Ebene E, die sowohl die Gerade als auch den Punkt enthält.
Eine Ebene braucht drei Zutaten:
| Zutat | Quelle |
|---|---|
| Stützvektor a | Stützvektor der Geraden g |
| 1. Richtungsvektor u | Richtungsvektor der Geraden g |
| 2. Richtungsvektor v | Vektor von A nach P, also v = P − A |
Allgemeine Formel:
E: x = a + r · u + s · v
library(plotly)
make_plane <- function(point, v1, v2, n = 15, alpha = 0.3, color = "deepskyblue") {
s_vals <- seq(-2, 2, length.out = n)
t_vals <- seq(-2, 2, length.out = n)
X <- Y <- Z <- matrix(0, nrow = n, ncol = n)
for (i in 1:n) {
for (j in 1:n) {
p <- point + s_vals[i] * v1 + t_vals[j] * v2
X[i, j] <- p[1]; Y[i, j] <- p[2]; Z[i, j] <- p[3]
}
}
plot_ly(type = "surface", x = X, y = Y, z = Z,
colorscale = list(c(0, 1), c(color, color)),
opacity = alpha, showscale = FALSE, hoverinfo = "skip")
}
add_line <- function(p, point, direction, color = "red", t_range = c(-3, 3)) {
t <- seq(t_range[1], t_range[2], length.out = 100)
p %>% add_trace(type = "scatter3d", mode = "lines",
x = point[1] + t * direction[1],
y = point[2] + t * direction[2],
z = point[3] + t * direction[3],
line = list(color = color, width = 6),
name = "Gerade g", hoverinfo = "name")
}
add_vector <- function(p, start, vector, color = "green", label = "", scale = 1.0) {
end <- start + vector * scale
p %>% add_trace(type = "scatter3d", mode = "lines+markers",
x = c(start[1], end[1]), y = c(start[2], end[2]), z = c(start[3], end[3]),
line = list(color = color, width = 5),
marker = list(size = 5, color = color),
name = label, hoverinfo = "name")
}
add_point <- function(p, point, label, color = "black", size = 6) {
p %>% add_trace(type = "scatter3d", mode = "markers+text",
x = point[1], y = point[2], z = point[3],
marker = list(size = size, color = color, symbol = "circle"),
text = label, textposition = "top center",
textfont = list(size = 13, color = color),
name = label, hoverinfo = "name")
}
Gegeben: g mit Stützvektor (2, −1, 3) und Richtung (−3, 1, 2), Punkt P(1 | 0 | −2).
Rechnung: Der zweite Richtungsvektor ist v = P − A = (−1, 1, −5).
Ergebnis:
E: x = (2, −1, 3) + r · (−3, 1, 2) + s · (−1, 1, −5)
a <- c(2, -1, 3); u <- c(-3, 1, 2); P <- c(1, 0, -2); v <- P - a
p_a <- make_plane(a, u, v, color = "deepskyblue", alpha = 0.3) %>%
add_line(a, u, color = "red") %>%
add_vector(a, u, color = "darkred", label = "u (Richtung g)") %>%
add_vector(a, v, color = "green", label = "v (a → P)") %>%
add_point(a, "A(2|−1|3)", color = "darkred") %>%
add_point(P, "P(1|0|−2)", color = "green") %>%
layout(title = "15a) Ebene E durch g und P",
scene = list(xaxis = list(title = "x"),
yaxis = list(title = "y"),
zaxis = list(title = "z"),
aspectmode = "data"),
legend = list(x = 0.02, y = 0.98))
p_a
Gegeben: g mit Stützvektor (1, 4, 2) und Richtung (1, −1, 1), Punkt P(0 | 0 | 0).
Rechnung: Der zweite Richtungsvektor ist v = P − A = (−1, −4, −2).
Ergebnis:
E: x = (1, 4, 2) + r · (1, −1, 1) + s · (−1, −4, −2)
a_b <- c(1, 4, 2); u_b <- c(1, -1, 1); P_b <- c(0, 0, 0); v_b <- P_b - a_b
p_b <- make_plane(a_b, u_b, v_b, color = "gold", alpha = 0.3) %>%
add_line(a_b, u_b, color = "red") %>%
add_vector(a_b, u_b, color = "darkred", label = "u (Richtung g)") %>%
add_vector(a_b, v_b, color = "green", label = "v (a → P)") %>%
add_point(a_b, "A(1|4|2)", color = "darkred") %>%
add_point(P_b, "P(0|0|0)", color = "green") %>%
layout(title = "15b) Ebene E durch g und P",
scene = list(xaxis = list(title = "x"),
yaxis = list(title = "y"),
zaxis = list(title = "z"),
aspectmode = "data"),
legend = list(x = 0.02, y = 0.98))
p_b
Ebene = Gerade + Punkt
1. Stützvektor von g übernehmen
2. Richtungsvektor von g übernehmen
3. Vektor von A nach P berechnen → 2. Richtung
4. Kollinearität prüfen (sonst keine Ebene!)