• Nie Znaleziono Wyników

Uzupełnienia do grafiki komputerowej 2

N/A
N/A
Protected

Academic year: 2021

Share "Uzupełnienia do grafiki komputerowej 2"

Copied!
12
0
0

Pełen tekst

(1)

Uzupełnienia do grafiki komputerowej 2

Marcin Orchel

1 Wstęp

1.1 Renderowanie

Renderowanie (obrazowanie, prezentacja) w grafice komputerowej obejmuje analizę mo- delu danej sceny oraz utworzenie na jej podstawie dwuwymiarowego obrazu wyjściowego w formie statycznej lub animacji. Podczas renderowania rozpatrywane są m.in. odbicia, cienie, załamania światła, wpływy atmosfery (mgła), efekty wolumetryczne, itp. Potok renderingu OpenGL składa się z ciągu operacji wykonywanych przez bibliotekę. Uprosz- czony schemat:

1. dane wierzchołków 2. shader wierzchołków 3. shader kontroli teselacji 4. teselator

5. shader ewaluacji teselacji 6. shader geometrii

7. rasteryzacja 8. shader fragmentów 9. operacje na fragmentach 10. bufor ramki

Programowalne etapy to shader wierzchołków, kontroli teselacji, ewaluacji teselacji, geo- metrii i fragmentów. Shader wierzchołków przeprowadza operacje na wierzchołkach i związanych z nimi danych, czyli atrybutach wierzchołków. W rasteryzacji generowane są na podstawie przetworzonych danych prymitywów fragmenty – elementy odwzorowujące prymitywy graficzne na dwuwymiarowej płaszczyźnie. Pomiędzy przetwarzaniem pry- mitywów (shader geometrii), a rasteryzacją jest etap tranformacji sprzężonych zwrotnie (ang. transform feedback) umożliwiający ponowne przetwarzanie wierzchołków z pomi- nięciem procesu rasteryzacji. Każdy programowalny etap renderingu ma dostęp do tek- stur, i innych danych (bloki zmiennych jednorodnych) niezależnych od wierzchołków.

(2)

Shader fragmentów wykonuje operacje na fragmentach (lub próbkach w przypadku wie- lopróbkowania), które są wynikiem procesu rasteryzacji prymitywów: punktów, odcin- ków i trójkątów. Zazwyczaj zmienne wyjściowe shadera fragmentów stanowią składowe kolorów fragmentu.

1.2 Śledzenie promieni

Program będzie napisany w shaderze fragmentów. Mamy położenie oka O, które jest początkiem promienia wystrzeliwanego w stronę płaszczyzny obrazu (ekran). Przecięcie z płaszczyzną obrazu następuje w punkcie S. Promień będzie oznaczany jako Rprimary. Promień przecina pierwszą kulę w punkcie I0. Od punkta przecięcia wychodzą dwa pro- mienie, jeden w kierunku źródła światła nazwany Rshadow. Jeśli Rshadow przetnie coś po drodze oznacza to, że punkt I0 będzie w cieniu. Drugi promień z punktu I0, oznaczony Rref lected odbija promień wysłany na podstawie normalnej powierzchni w punkcie I0 oznaczonej jako N .

Szczegóły. Wyznaczenie przecięcia kuli z promieniem. Mamy promień R z początkiem O i kierunkiem ~D, po upływie czasu t punkt znajdzie się w miejscu O + t ~D. Z definicji kuli każdy punkt na jej powierzchni znajduje się w odległości r od środka kuli C. A zatem kwadrat odległości między środkiem kuli C, a dowolnym jej punktem wynosi r2, a zatem ze względu na zależność

~a · ~a = kak2 (1)

otrzymujemy

O + t ~D − C·O + t ~D − C= r2 (2) Po przekształceniu otrzymujemy równanie kwadratowe

D · ~~ Dt2+ 2 (O − C) · ~Dt + (O − C) · (O − C) − r2 = 0 (3)

Jest to równanie kwadratowe ze współczynnikami

A = ~D · ~D (4)

B = 2 (O − C) · ~D (5)

C = (O − C) · (O − C) − r2 (6)

Możemy znaleźć rozwiązanie równania kwadratowego ze znanego wzoru. Możemy upro- ścić rozwiązania przyjmując, że wektor kierunku D ma długość 1, wtedy A = 1. Dla dwóch punktów przecięcia musimy określić najbliższy punkt przecięcia.

Mamy wyznaczony punkt I0 przecięcia z powierzchnią kuli. Mamy również źródło światła w punkcie L, tworzymy promień z początkiem w I0, a kierunek do punktu L znormalizowany

L − I0

kL − I0k (7)

(3)

Jest to promień cienia Rshadow. Sprawdzamy czy w coś nie uderza. Jeśli w coś uderza to w obliczaniu światła w punkcie I0 musimy zmniejszyć natężenie światła rozproszonego Ld w modelu oświetlenia Lamberta.

Dla każdego światła na scenie obliczamy jego wpływ i akumulujemy je wyznaczając finalny kolor w punkcie przecięcia I0 za pomocą mieszania kolorów.

Możemy również obliczyć promień odbity względem normalnej. Tak powstały pro- mień będzie wejściem do tego samego algorytmu śledzenia promieni, a więc będzie- my mieli rekurencję. Wyznaczymy tym sposobem kolor w punkcie przecięcia promienia Rref lected z drugą kulą I1.

Możemy ograniczyć liczbę odbić promienia do 5. Promieć odbity możemy znaleźć wg wzoru

Rref lected= Rprimary− 2 (Rprimary· ~n) ~n (8) Dowód. Projekcja wektora Rprimary na wektor ˆn = n/ knk to

projnRprimary = (Rprimary· ˆn) ˆn (9)

Wektor do niego prostopadły to

Rprimary− (Rprimary· ˆn) ˆn (10)

Możemy zapisać tożsamość

Rprimary− (Rprimary· ˆn) ˆn = Rprimary− (Rprimary· ˆn) ˆn (11) Rprimary = (Rprimary· ˆn) ˆn + (Rprimary− (Rprimary· ˆn) ˆn) (12) Natomiast dla docelowego wektora mamy podobnie

Rref lected= (Rref lected· ˆn) ˆn + (Rref lected− (Rref lected· ˆn) ˆn) (13) Zauuważmy, że rzut Rref lected na ~n będzie taki sam jak rzut Rprimary ale z przeciwnym znakiem, a wektor prostopadły będzie taki sam jak dla Rprimary, czyli

Rref lected= − (Rprimary· ˆn) ˆn + (Rprimary− (Rprimary· ˆn) ˆn) (14) czyli

Rref lected = Rprimary− 2 ((Rprimary· ˆn) ˆn) (15)

Możemy zamiast kuli wyznaczyć śledzenie promieni dla płaszczyzn. Równanie płasz- czyzny to

P · N + d = 0 (16)

gdzie d to odległość od początku układu, jeśli ~n jest znormalizowany, P to dowolny punkt leżący na płaszczyźnie. Zakładamy, że punkt P leży także na promieniu, czyli

P = O + t ~D (17)

(4)

Alg. 1 Algorytm śledzenia promieni Dla każdego piksela na ekranie

Wyznacz początek i kierunek rozchodzenia się promienia z kamery Dla koniecznej liczby śledzonych promieni

Wypuść promień

Dla każdego obiektu w scenie Sprawdź, czy promień w niego trafia Jeśli tak,

Wyznacz punkt trafienia i wektor normalny w tym punkcie Dla każdego źródła światła

Wyznacz składowe rozproszenia i odbicia w punkcie trafienia Poprowadź linię cienia z punktu trafienia do źródła światła Koniec pętli

Przyciemnij składową rozproszenia zgodnie z wynikami obliczeń cienia Ustal punkt trafienia początkiem nowego promienia.

Wyznacz kierunek nowego promienia zgodnie z prawem odbicia.

Koniec warunku.

Koniec pętli.

Koniec pętli.

Koniec pętli.

Po zastąpieniu P otrzymujemy

O + t ~D· ~n + d = 0 (18)

Po przekształceniu

t = − (O · ~n + d)

D · ~~ n (19)

Otrzymujemy punkt przecięcia promienia z płaszczyzną.

1.3 Śledzenie ścieżek (ang. path tracing)

Równanie renderingu określa ilość światła wyemitowanego z punktu x w określonym kie- runku widzenia mając dane źródło światła i BRDF (bidirectional reflectance distribution function)

L0(~x, ω0, λ, t) = Le(~x, ω0, λ, t) + Z

fr(~x, ωi, ω0, λ, t) Li(~x, ωi, λ, t) (ωi· ~n) dωi (20) gdzie L0 to radiancja spektralna fali o długości λ ukierunkowanej wzdłuż kierunku ω0, ω0 to kierunek patrzenia, czyli kierunek wyjściowego światła, λ to konkretna długość fali światła, t to czas, Leto emitowana spektralna radiancja, Ω to hemisfera (półkula) wokół wektora ~n zawierająca wszystkie możliwe wartości ωi, fr to dwukierunkowa funkcja roz- kładu odbicia (BRDF). Jest to stosunek luminancji energetycznej mierzonej w kierunku

(5)

Alg. 2 Algorytm śledzenia ścieżek Dla każdego piksela na ekranie

Utwórz promień światła wychodzący ze źródła i skierowany losowo Dla koniecznej liczby śledzonych promieni od oka

Dla każdego obiektu w scenie Sprawdź, czy promień w niego trafia

Wyznacz punkt trafienia i wektor normalny w tym punkcie

Poprowadź linię cienia z punktu trafienia w kierunku wybranym losowo (losowy wybór źródła światła).

Wyznacz składowe rozproszenia i odbicia w punkcie trafienia

Przyciemnij składową rozproszenia zgodnie z wynikami obliczeń cienia Ustal punkt trafienia początkiem nowego promienia.

Wyznacz kierunek nowego promienia zgodnie z prawem odbicia.

Koniec warunku.

Koniec pętli.

Koniec pętli.

Koniec pętli.

obserwatora do natężenia napromienienia badanego z kierunku padania promieniowania.

W pełni charakteryzuje własności refleksyjne powierzchni odbijającej, ωi to kierunek do światła, Li to spektralna radiancja długości fali λ przychodzącej w kierunku punktu x z kierunku ωi w czasie t, ~n to normalna do powierzchni, ωi· ~n to czynnik zmniejszający irradiancję ze względu na kąt padania.

Czyli światło wyjściowe jest sumą światła emitowanego Le i światła odbitego (dru- gi składnik). Światło odbite jest tak naprawdę sumą ze wszystkich kierunków światła przychodzącego Li pomnożonego przez odbicie powierzchni i kosinus kąta padania.

Stosujemy schemat całkowania Monte Carlo. Wybieramy różne kierunki ωi. Algorytm dalej jest rekurencyjny, zastępujemy światło Li tą samą procedurą.

Promień wychodzi od oka i zderza się z obiektem. Źródło światła jest przesunięte losowo.

Dla punktu przecięcia generujemy losowy kierunek światła na widocznej półkuli po- wierzchni na której jest punkt.

1.4 Algorytm maszerujących sześcianów (ang. marching cubes)

Zadanie polega na narysowaniu siatki wielokątów przybliżających powierzchnię ekwipo- tencjalną dla danego pola skalarnego.

Algorytm, który dla zadanego pola skalarnego tworzy siatkę wielokątów przybliżającą powierzchnię ekwipotencjalną o wybranej wartości granicznej potencjału.

Dzielimy przestrzeń na regularną siatkę sześcianów. W każdym kroku rozpatruje- my jeden sześcian. W każdym jego wierzchołku wyznaczana jest wartość pola skalar- nego i porównywana z wartością graniczną. Jeśli wszystkie wierzchołki mają wartość potencjału mniejszą od zadanej wartości, to taki sześcian nie będzie zawierał powierzch-

(6)

ni ewkipotencjalnej i go ignorujemy. Podobnie jeśli wszystkie wierzchołki mają war- tości większe od zadanej wartości. W przeciwnym razie rysujemy w sześcianie płasz- czyzny takie jak na rysunku https://pl.wikipedia.org/wiki/Algorytm_maszeruj%

C4%85cych_sze%C5%9Bcian%C3%B3w#/media/File:MarchingCubes.svg. Musimy ryso- wać płaszczyzny tak, aby wierzchołki o mniejszej wartości po jednej stronie tych wie- lokątów, a o większej wartości po drugiej stronie. Przykładowo w czwartym przypadku nie może być to tylko jedna płaszczyzna. Jak wyznaczyć tą płaszczyznę? Wiemy pomię- dzy jakimi wierzchołkami będzie przebiegać. Będzie przecinała sześcian na odpowiednich krawędziach Czyli wszystkie wierzchołki trójkątów na które zostanie podzielona płasz- czyzna w obrębie sześcianu leżą na krawędziach sześcianu takich, że jeden wierzchołek krawędzi ma mniejszą wartość, a drugi wierzchołek większą. Więc możemy zastosować interpolację liniową, aby znaleźć te wierzchołki. Możemy również zastosować interpo- lację liniową aby znaleźć wektory normalne w wierzchołkach trójkątów na podstawie wektorów normalnych w wierzchołkach sześcianów.

Kolejne pytanie jest takie, czy w tym algorytmie jeśli przeanalizujemy sześciany sąsia- dujące, czy zawsze znalezione trójkąty będą ze sobą połączone? Czy zawsze otrzymamy powierzchnię ciągłą? Będą wspólne krawędzie sześcianów, które zawierają wierzchołki trójkątów, więc będzie to ciągła powierzchnia, te krawędzie możemy analizować tylko raz.

Wszystkich konfiguracji jest 256, ponieważ jest 8 wierzchołków każdy wierzchołek może mieć większą lub mniejszą wartość.

Algorytm dla płaszczyzny to maszerujące kwadraty (ang. marching squares).

1.4.1 Metaball

Metaball to obiekty przypominające twory organiczne. Dla przestrzeni 3D definiujemy funkcję f (x, y, z). Mamy kilka metaballi, definiujemy threshold, który mówi, czy punkt przestrzeni trójwymiarowej jest rysowany czy nie

m

X

i=0

metaballi(x, y, z) ≤ threshold (21)

Przykładowy metaball to

f (x, y, z) = 1

(x − x0)2+ (y − y0)2+ (z − z0)2 (22) gdzie x0, y0, z0 to jego środek. Żeby renderować te obiekty, musimy wyznaczyć poziomice np. za pomocą maszerujących sześcianów.

1.5 Animacje szkieletowe

Animacje poklatkowe - odtworzenie gotowych sekwencji klatek.

Animacje fizyczne - obiekty poruszające się pod wpływem symulowanych sił fizycz- nych.

(7)

Animacje szkieletowe - animacje ludzi i innych kręgowców.

Wiechołki modelu 3D mają przypisane wagi wpływu (wagi wiązania), od których zależy jak mocno poszczególne kości wpływają na ruchy tych wierzchołków.

Skinning - przypisywanie wag wiązania.

Każda kość przechowuje własne transformacje. Animacja polega na wykonywania tych tranformacji w poszczególnych klatkach.

1.5.1 Skinning z mieszaniem liniowym (ang. linear blend skinning)

Mamy do czynienia ze zbiorem kości, z których każda ma przypisaną transformację lokal- ną (zwaną też względną) określającą jej położenie i orientację względem kości nadrzędnej.

Jeśli na transformację lokalną nakłada się transformacja kości nadrzędnej, otrzymujemy transformację globalną (inaczej bezwzględną).

Poza wiązania (bind pose) to transformacje globalne kości wyznaczone przed ani- macją. W tym stanie wykonywane jest łączenie siatki ze szkieletem (skinning). Jest to domyślna poza animowanego modelu.

Macierz skinningu (inaczej finalna macierz kości).

Na podstawie indeksów i wag wiązania jest wyliczane właściwe położenie wierzchołka uwzględniające wpływy powiązanych z nim kości.

Deformacja siatki jest liczona ze wzoru Pˆi=

n

X

j=1

wijTjPi (23)

gdzie n to liczba kości, wij to waga wiązania i-tego wierzchołka z j-tą kością, Tj to macierz 4x4 definiująca globalną transformację j-tej kości w stosunku do całej pozy, pi to punkt siatki, a ˆpi to punkt siatki po deformacji.

Problem jest taki, że to równanie nie zachowuje odległości między punktami. Inaczej, czasami nastąpi spadek objętości dla punktu na siatce na łączeniu dwóch kości. A więc mamy tylko dwie kości

V =ˆ

n

X

j=1

wjTjV = w1T1V + w2T2V = 0.5V1+ 0.5V2 (24)

gdzie V1 to położenie punktu V po zgięciu kości 1, a V2 to położenie punktu V po zgięciu kości 2. Ich liniowa transformacja spowoduje, że otrzymamy punkt leżący na odcinku je łączący, a on będzie leżał zbyt nisko, przez co tracimy objętość. Przykład ręką zginana w stawie łokciowym od pozycji wyprostowanej, punkt V leży na siatce nad połączeniem kości.

Ulepszona wersja skinning with dual quaternionshttps://www.cs.utah.edu/~ladislav/

dq/index.htmlZamiast liniowej interpolacji jest robiona interpolacja sferyczna.

q0 = w1q1+ w2q2

kw1q1+ w2q2k (25)

(8)

1.6 Symulacje fizyczne

1.6.1 Całkowanie Verleta

Dla równania różniczkowego drugiego rzędu

x00(t) = A (x (t)) (26)

z warunkami początkowymi

x (t0) = x0 (27)

x0(t0) = v0 (28)

przybliżone rozwiązanie numeryczne xn ≈ x (tn) w czasie tn = t0+ n∆t, gdzie ∆t > 0 obliczamy jako

x1= x0+ v0∆t +1

2A (x0) ∆t2 (29)

xn+1 = 2xn− xn−1+ A (xn) ∆t2 (30) Równania ruchu Newtona

M x00(t) = F (x (t)) = −∇V (x (t)) (31) gdzie t to czas, ~x(t) to wektor pozycji N obiektów, V to skalarna funkcja potencjału, F to gradient ujemny potencjału, M to macierz mas (mass matrix), macierz diagonalna z masami mk poszczególnych cząstek.

1.6.2 Symulacja tkaniny

Przy symulacji tkaniny należy uwzględnić siłę grawitacyjną, opory ruchu i siłę oddziały- wań wewnętrznych z sąsiednimi wierzchołkami (sprężystość). Obliczamy przyspieszenie na podstawie wypadkowej siły. Następnie stosujemy całkowanie Verleta.

Należy też sprawdzić czy wierzchołek nie zderza się z podłożem.

1.6.3 Symulacja zderzania tkaniny z obiektem o kształcie elipsoidalnym 1.6.4 Systemy cząsteczkowe

Brane są pod uwagę położenie cząsteczki, kierunek jej ruchu, prędkość, wartości życia.

Należy uwzględnić odbijanie cząsteczki, jeśli doszło do kolizji. Po odbiciu zmniejszamy wartość życia, zmieniamy kierunek, zmniejszamy prędkość. Jeśli życie cząsteczki ma wartość zero, ustalamy nowy losowy kierunek ruchu, losową wartość życia, prędkość wartość domyślna, położenie bieżące takie jak położenie emitera.

(9)

2 Zadania

2.1 Zadania na zajęcia

• przetestować śledzenie promieni. Spróbować dostrzec odbicia kul w odbiciach kul, oraz odbicia kul w odbiciach kul w odbiciach kul. Zaobserwować odbicie kul na płaszczyznach i płaszczyzn na kulach. Porównać wersje z 1, 2, 3, 4 odbiciami.

Porównać efekt z rasteryzacją. Zbadać wpływ liczby trójkątów sceny na cienie.

Wskazówki do three.js

https://threejs.org/examples/raytracing_sandbox.html

https://erichlof.github.io/THREE.js-PathTracing-Renderer/ThreeJS_

PathTracing_Renderer_GeometryShowcase.html

https://erichlof.github.io/THREE.js-PathTracing-Renderer/ThreeJS_

PathTracing_Renderer_CornellBox_DirectLighting.html,https://github.

com/erichlof/THREE.js-PathTracing-Renderer

https://rawgit.com/nicoptere/raymarching-for-THREE/master/index.

html,https://rawgit.com/nicoptere/raymarching-for-THREE/master/interactive.

html,https://rawgit.com/nicoptere/raymarching-for-THREE/master/colors.

html,https://rawgit.com/nicoptere/raymarching-for-THREE/master/halibut.

html,https://rawgit.com/nicoptere/raymarching-for-THREE/master/hulkbuster.

html,https://rawgit.com/nicoptere/raymarching-for-THREE/master/cells.

html, http://barradeau.com/dump/raymarching/walker.html, https://

github.com/nicoptere/raymarching-for-THREE

Wskazówki do WebGL

http://hoxxep.github.io/webgl-ray-tracing-demo/, https://github.

com/hoxxep/webgl-ray-tracing-demo http://www.vill.ee/eye

http://madebyevan.com/webgl-water/,http://www.geeks3d.com/20110818/

raytraced-water-simulation-webgl/

https://github.com/sschoenholz/WebGL-Raytracer/,http://www.mbroecker.

com/project_webgltracer.html

• przetestować śledzenie ścieżek. Porównać z śledzeniem promieni. Jak zmieniają się cienie w zależności od odległości od kamery i liczby trójkątów. Zaobserwować zaszumienie. Przetestować różną liczbę losowo generowanych źrodeł światła.

Wskazówki do three.js

https://erichlof.github.io/THREE.js-PathTracing-Renderer/ThreeJS_

PathTracing_Renderer_GeometryShowcase.html,https://github.com/erichlof/

THREE.js-PathTracing-Renderer

(10)

Wskazówki do webgl

http://madebyevan.com/webgl-path-tracing/

• przetestować metaballe Wskazówki do three.js

https://stemkoski.github.io/Three.js/Metaballs.html https://stemkoski.github.io/Three.js/Metabubbles.html Wskazówki

https://codepen.io/mirajm212/pen/Iivdj

• przetestować algorytm maszerujących sześcianów.

Wskazówki do Three.js

https://threejs.org/examples/webgl_marchingcubes.html Wskazówki do WebGL

http://tdhooper.github.io/glsl-marching-cubes/,https://github.com/

tdhooper/glsl-marching-cubes

http://rwilinski.me/marching-cubes/index.html,https://github.com/

RafalWilinski/marching-cubes-webgl

https://www.clicktorelease.com/code/bumpy-metaballs/

• przetestować animacje szkieletowe Wskazówki do three.js

https://threejs.org/examples/webgl_animation_skinning_blending.html Wskazówki

https://www.cs.utexas.edu/~theshark/courses/cs354/assignments/assignment_

5.shtml

https://canvas.dartmouth.edu/courses/16840/assignments/82767

• Przejrzeć animację tkaniny. Zaimplementować zderzenie z innymi rodzajami obiek- tów jak sfera.

Wskazówki do three.js

https://threejs.org/examples/webgl_animation_cloth.html http://www.jecj.in/ufo/unmeshcamcloth.html

• Przejrzeć systemy cząsteczkowe.

Wskazówki do three.js

(11)

https://threejs.org/examples/canvas_geometry_birds.html http://labs.int3ractive.com/javascript/canvas/fish-boids/

Wskazówki do webGL

https://www.khronos.org/registry/webgl/sdk/demos/google/particles/

index.html

http://soulwire.github.io/WebGL-GPU-Particles/

• przetestować dodatek fizyki do three.js Wskazówki do three.js

http://chandlerprall.github.com/Physijs/examples/vehicle.html http://chandlerprall.github.com/Physijs/examples/jenga.html

http://chandlerprall.github.com/Physijs/examples/heightfield.html http://chandlerprall.github.com/Physijs/examples/constraints_car.

html

http://chandlerprall.github.com/Physijs/examples/compound.html http://chandlerprall.github.com/Physijs/examples/shapes.html http://chandlerprall.github.io/Physijs/

2.2 Zadania dodatkowe

2.3 Zadania dodatkowe do C++

• Wskazówki

2.4 Zadania domowe na plusa

• zadania znajdują sie w moodle

A Uzupełnienia

Funkcja wektorowa - funkcja o wartościach będących wektorami. Wejściem mogą być skalary lub wektory.

Pole wektorowe - funkcja, która każdemu punktowi przestrzeni przyporządkowuje pewną wielkość wektorową.

Pole wektorowe na podzbiorze przestrzeni Euklidesowej. Dla danego podzbioru S w Rn pole wektorowe reprezentowane jest przez funkcję wektorową V : S → Rn w standardowych współrzędnych kartezjańskich (x1, . . . , xn).

(12)

Pole skalarne - przypisanie każdemu punktowi w przestrzeni fizycznej lub w prze- strzeni abstrakcyjnej pewnej wielkości skalarnej. Czyli pole skalarne to funkcja F : RnR.

Jeżeli dla danego pola wektorowego A(r) istnieje pole skalarne ϕ(r), takie, że w każ- dym punkcie ~r jego gradient jest równy wektorowi danego pola ze zmienionym zwrotem, czyli

A (r) = −∇ϕ (r) (32)

to pole A(r) nazywamy polem potencjalnym, a ϕ(r) jego potencjałem.

Potencjał - pole skalarne określające pewne pole wektorowe.

Powierzchnia ekwipotencjalna - powierzchnia w polu potencjalnym, której wszystkie punkty mają jednakowy potencjał pola. Umożliwiają wizualizację n-wymiarowej funkcji skalarnej potencjalnej w przestrzeni n − 1 wymiarowej. Powierzchnie ekwipotencjalne są w każdym punkcie prostopadłe do wektora pola.

Powierzchnie ekwipotencjalne są tak naprawdę izopowierzchniami, czyli poziomica- mi.

Przykład. Mamy jakąś funkcję dwóch zmiennych niezależnych z = f (x, y). Określamy pole potencjalne w ten sposób, że wyznaczamy gradient funkcji f w punkcie (x, y) ze zmienionym znakiem. Gradient będzie to wektor z pochodnymi cząstkowymi po x i po y w płaszczyźnie XY. Możemy w przestrzeni XY narysować wektor gradientu w wybranych analizowanych punktach. Następnie moglibyśmy naszkicować powierzchnie ekwipotencjalne tak aby były prostopadłe (jej styczne) do wektorów gradientu.

Cytaty

Powiązane dokumenty

Praca nie może być w żadnym stop- niu przyczynkiem do podejmowania prób stosowania u pa- cjentów z CTEPH i klasycznymi wskazaniami do endarterek- tomii płucnej tylko

Pięć „klasycznych” badań klinicznych z randomizacją (PIAF, STAF, RACE, HOT-CAFE, AFFIRM) porównujących dwie strategie leczenia AF: dążenie do podtrzymania rytmu za-

Przed owocami „b$karciej Europy" przestrzegal proroczo Norwid wlas- n$ ich rodzicielkQ, Europe, na wiele lat wczesniej, zanim nas obdarzyla dzie- ckiem hitleryzmu

Jan Paweł II, utwierdzając braci w wierze w prawdę, utwierdza ich w miłości Prawda bowiem jest dobra, a dobru należy się miłość.. W miłości prawdy tkwi

Z danych Ministerstwa Zdrowia  na koniec czerwca wynika, że le- karze rodzinni wystawili 39 942 ze 

Produkt biopodobny jest wytwarzany z wy- korzystaniem budowy lub funkcji leku referencyjnego, jednak różnice pomiędzy biologicznym produktem re- ferencyjnym a biopodobnym są

Kodyfikacja umowy cywilnej w przepisach kodeksu cywilnego uregulowała warunki, na ja- kich musi być zawarta umowa leasingu, zatem jeśli firma leasingowa zobowiązała się (a może

(pozostawmy na razie na boku rozważania niuansujące kategorię męskości, bo oczywiście jest to męskość swoiście pojęta, w sposób historyczno-kulturowy uwarunkowana,