Laboratoria / Eksperyment 02
Co łączy okrąg ze sferą?
Obejrzyj sferę o promieniu 5. Oblicz i porównaj jej przekroje na trzech wysokościach.
Autor materiału i koncepcji: Mariusz Smółka. Wszystkie laboratoria.
1. Pytanie badawcze
Jak powstaje sfera i dlaczego jej przekroje mogą mieć różne promienie?
Okrąg to zbiór punktów płaszczyzny oddalonych jednakowo od środka. Koło zawiera również punkty wewnątrz okręgu. Sfera jest powierzchnią w przestrzeni: wszystkie jej punkty mają tę samą odległość od środka. Kula zawiera sferę i jej wnętrze.
Obracajmy okrąg wokół prostej zawierającej jego średnicę. Zbiór wszystkich punktów, przez które przechodzi obracany okrąg, tworzy sferę. To operacja geometryczna. Obracanie kamery w IDE zmienia tylko kierunek patrzenia na gotową powierzchnię.
Przecinamy sferę płaszczyzną z = h. Gdy płaszczyzna przechodzi przez wnętrze kuli, jej część wspólna ze sferą jest okręgiem. Część wspólna tej samej płaszczyzny z kulą jest kołem. W tym eksperymencie badamy okręgi, nie koła.
Przyjmujemy R = 5 oraz h = 0, 3 i 4. R oznacza promień sfery, h wysokość płaszczyzny względem środka, a r promień otrzymanego okręgu. Odległość płaszczyzny od środka wynosi |h|. L oznacza długość okręgu, a π stałą matematyczną pi.
Przed uruchomieniem programu przewidź, na której wysokości przekrój będzie największy. Wzory i odpowiadające im ilustracje znajdziesz w części 3.
2. Program Python
Skopiuj cały program do Python IDE Extended i wybierz Uruchom. Najpierw pojawi się sfera. Trzy kolejne naciśnięcia Enter w polu odpowiedzi pokażą przekroje dla h = 0, 3 i 4. Czwarte naciśnięcie Enter wyświetli ich wspólne porównanie i program zakończy się naturalnie.
import math
import ms2d
import ms3d
R = 5
wysokosci = [0, 3, 4]
# Najpierw oglądamy sferę.
rysuj_3(ms3d.sfera(r=R))
okregi = []
for h in wysokosci:
input(f"Enter - pokaż przekrój dla h = {h}")
# Obliczamy promień przekroju.
r = math.sqrt(R**2 - h**2)
# Obliczamy długość okręgu.
L = 2 * math.pi * r
print(f"h = {h}, r = {r:g}, L = {L:.2f}")
okrag = ms2d.okrag(r=r)
okregi.append(okrag)
# Wyświetlamy pojedynczy przekrój.
rysuj_2(okrag)
input("Enter - porównaj wszystkie przekroje")
# Trzy okręgi na wspólnych osiach.
rysuj_2(*okregi)
Pobierz kompletny program .py. Jak uruchomić program w IDE?
import math udostępnia moduł matematyczny. math.pi reprezentuje liczbę pi, a math.sqrt() oblicza pierwiastek kwadratowy. Zapis :.2f wyświetla wynik z dwoma miejscami po przecinku. Standardowy wynik Pythona używa kropki dziesiętnej.
Skąd wziąć pi i jak użyć jej w obliczeniu?
import math
print(math.pi)
import math
r = 4
# Obliczamy długość okręgu.
L = 2 * math.pi * r
print(f"Długość okręgu: {L:.2f}")
Nie zastępuj math.pi ręcznie wpisanym przybliżeniem. Formatowanie zmienia sposób wyświetlenia wyniku, a nie wartość używaną w obliczeniach.
ms3d.sfera(r=R) opisuje powierzchnię sfery. ms2d.okrag(r=r) opisuje okrąg przekroju, a lista okregi gromadzi trzy takie funkcje. Gwiazdka w rysuj_2(*okregi) przekazuje je jako osobne argumenty.
Program tworzy pięć oddzielnych wizualizacji, mieszcząc się w limicie ośmiu. Każde wywołanie rysujące dodaje nowy wynik. Nie przesuwa płaszczyzny na istniejącej scenie 3D i nie wykonuje interaktywnego cięcia sfery.
Dla wybranych wysokości zachodzi |h| < R, więc promień przekroju jest dodatni. Przy |h| = R przekrój jest punktem; ms2d.okrag() wymaga dodatniego promienia. Przy |h| > R nie ma przekroju, a pierwiastek z ujemnej liczby nie jest liczbą rzeczywistą.
3. Wizualizacje
Wykresy 2D pokazują przekroje oglądane prostopadle do ich płaszczyzn. Współrzędne X i Y pozostają te same; wysokość z = h podaje podpis. Zachowano jednakową skalę jednostek X i Y oraz wspólny kadr dla wszystkich okręgów.
Okrąg o promieniu R = 5
Wszystkie punkty tego okręgu leżą na płaszczyźnie i są oddalone od środka o 5 jednostek. W równaniu prawa strona wynosi 25.
Sfera o promieniu R = 5
Teraz punkty leżą w przestrzeni trójwymiarowej. Ich odległość od środka nadal wynosi 5. Zrzut pokazuje rzeczywisty wynik rysuj_3(ms3d.sfera(r=5)), z osiami X, Y i Z.

Jak wyznaczamy promień przekroju?
Po podstawieniu z = h pozostaje równanie okręgu. Jego promień wynosi r = √(R² − h²), a długość L = 2πr. Wzór na r stosujemy dla |h| ≤ R; tylko przy |h| < R otrzymujemy okrąg o dodatnim promieniu.
Przy |h| = R płaszczyzna jest styczna do sfery i ma z nią wspólny jeden punkt. Przy |h| > R nie ma punktów wspólnych.
Przekrój na wysokości h = 0
r = √(25 − 0) = 5. Długość okręgu wynosi L = 10π ≈ 31,42. Python oblicza te wartości ze wzorów.
Przekrój na wysokości h = 3
r = √(25 − 9) = 4. Długość okręgu wynosi L = 8π ≈ 25,13. Python oblicza te wartości ze wzorów.
Przekrój na wysokości h = 4
r = √(25 − 16) = 3. Długość okręgu wynosi L = 6π ≈ 18,85. Python oblicza te wartości ze wzorów.
Trzy przekroje na wspólnych osiach
Rysunki z różnych wysokości nakładamy na jeden układ X/Y, aby porównać ich promienie. Nie oznacza to, że wszystkie trzy okręgi leżą na tej samej wysokości w przestrzeni.
- 1.h = 0, r = 5
- 2.h = 3, r = 4
- 3.h = 4, r = 3
Ilustracje są statyczne i pochodzą z istniejących mechanizmów IDE. Zmiany parametrów sprawdzaj w aplikacji. Więcej o ograniczeniach wizualizacji.
4. Obserwacje i wnioski
Im dalej płaszczyzna leży od środka sfery, tym mniejszy promień okręgu przekroju. W równaniu rośnie h², więc maleje R² − h². Największy okrąg otrzymujemy dla h = 0.
| h | r | Długość L |
|---|---|---|
| 0 | 5 | 10π ≈ 31,42 |
| 3 | 4 | 8π ≈ 25,13 |
| 4 | 3 | 6π ≈ 18,85 |
Wyświetlone długości są zaokrąglone do dwóch miejsc po przecinku. Gdy promień maleje, długość okręgu maleje w tej samej proporcji. Dla przeciwnych wysokości h i −h promienie przekrojów są takie same, ponieważ we wzorze występuje h².
5. Dalsze doświadczenia
- Ustaw R = 4 i wysokości [0, 2, 3]. Najpierw przewidź, co zmieni się na wykresie, a potem uruchom program.
- Dla R = 5 zastąp jedną z wysokości wartością 2. Porównaj jej okrąg z pozostałymi.
- Sprawdź wysokości [0, −3, −4]. Czy okręgi różnią się od wyników dla dodatnich wysokości?
- Porównaj, jak zmiana promienia przekroju wpływa na jego długość. Czy dwukrotnie większy promień daje dwukrotnie większą długość?
Dobieraj wysokości tak, aby |h| < R. Dla pełnego widoku sfery w standardowym obszarze IDE wybierz dodatni promień mniejszy niż 6. Zachowaj trzy wysokości, aby program nadal tworzył pięć wizualizacji.
W Bazie wiedzy znajdziesz artykuły Okrąg i Sfera. Opisują one parametry funkcji użytych w programie.
Wynik eksperymentu w PDF
Po wykonaniu eksperymentu możesz zachować kod programu i otrzymane wizualizacje w pliku PDF. Poniżej znajduje się przykładowy dokument wygenerowany bezpośrednio w Python IDE Extended.
Pobierz przykładowy wynik eksperymentu (PDF)
Eksport zawiera kod i pięć wizualizacji. Obecna funkcja Drukuj / PDF nie dołącza treści konsoli.