31 svar
379 visningar
brunbjörn behöver inte mer hjälp
brunbjörn 238
Postad: 7 aug 14:38

Speglingar

När jag räknar ut speglingar så brukar jag rita upp det och utifrån det ta fram standardmatrisen genom att undersökta standard basvektorerna... men finns det ett bättre sätt att tackla speglingar?

Såg denhär formeln: a 2projb(a) - a , där a är inputvektorn och 2projb(a) - är vektorn a:s reflektion.... men gäller det för alla speglingar? https://youtu.be/BCmFsYFln2k?si=QmG06Glgr3W9UU-r 

LuMa07 495
Postad: 7 aug 15:30 Redigerad: 7 aug 15:38
brunbjörn skrev:

Såg denhär formeln: a 2projb(a) - a , där a är inputvektorn och 2projb(a) - är vektorn a:s reflektion.... men gäller det för alla speglingar?

Vad menas med b i formeln? Denna formel ger nämligen spegling i den linje vars riktningsvektor är b.

Det står faktiskt i videons beskrivning att man arbetar med speglingar av vektorer i en vektor, d.v.s. inte i ett plan.


Menar man spegling i det plan vars normalvektor är b, så är det formeln aa - 2 projb(a) som gäller.


Rita en figur med projektionen på planet (och/eller dess normal) samt den sökta spegelbilden för att kunna klura ut varför formeln ser ut som den gör.

brunbjörn 238
Postad: 7 aug 15:52
LuMa07 skrev:
brunbjörn skrev:

Såg denhär formeln: a 2projb(a) - a , där a är inputvektorn och 2projb(a) - är vektorn a:s reflektion.... men gäller det för alla speglingar?

Vad menas med b i formeln? Denna formel ger nämligen spegling i den linje vars riktningsvektor är b.

Det står faktiskt i videons beskrivning att man arbetar med speglingar av vektorer i en vektor, d.v.s. inte i ett plan.


Menar man spegling i det plan vars normalvektor är b, så är det formeln aa - 2 projb(a) som gäller.


Rita en figur med projektionen på planet (och/eller dess normal) samt den sökta spegelbilden för att kunna klura ut varför formeln ser ut som den gör.

Hmmm... misstänkte det men asså hittade en likande tråd där de nämnde formen: https://www.pluggakuten.se/trad/spegling-39/ 😕 

Tycker att det är svårt at rita upp planet 

Bedinsis Online 3316
Postad: 8 aug 15:11
brunbjörn skrev:

Tycker att det är svårt at rita upp planet 

Ignorera x3-koordinaten och rita bara upp x1- och x2-planet. Hur ritar du då upp där som x1 = x2?

brunbjörn 238
Postad: 8 aug 15:35
Bedinsis skrev:
brunbjörn skrev:

Tycker att det är svårt at rita upp planet 

Ignorera x3-koordinaten och rita bara upp x1- och x2-planet. Hur ritar du då upp där som x1 = x2?

Sen använde jag min hand för att få planet... men har liksom svårt för att ta fram speglingen (mycket enklare när planet är x1x2 planet) 

Bedinsis Online 3316
Postad: 8 aug 16:00 Redigerad: 8 aug 16:01

Hur skulle du spegla vektorn v= x1? (dvs. en vektor som bara har utsträckning i x1-led?)

Hur skulle du spegla vektorn v= x2? (dvs. en vektor som bara har utsträckning i x2-led?)

brunbjörn 238
Postad: 8 aug 16:02
Bedinsis skrev:

Hur skulle du spegla vektorn v= x1? (dvs. en vektor som bara har utsträckning i x1-led?)

Hur skulle du spegla vektorn v= x2? (dvs. en vektor som bara har utsträckning i x2-led?)

Det är just det jag har svårt för 😕 har ingen aning 

Bedinsis Online 3316
Postad: 8 aug 16:07

Vrid huvudet 45 grader åt vänster så att din vita speglingsyta är vågrät. Kan du då hitta någon punkt ovanför linjen som du kan hitta dess spegelbild av, dvs. den punkt som ligger rakt nedanför på andra sidan linjen på samma avstånd till linjen?

Om det inte går att bara se det...

Kan du säga vad planets normal blir?

brunbjörn 238
Postad: 8 aug 16:21
Bedinsis skrev:

Vrid huvudet 45 grader åt vänster så att din vita speglingsyta är vågrät. Kan du då hitta någon punkt ovanför linjen som du kan hitta dess spegelbild av, dvs. den punkt som ligger rakt nedanför på andra sidan linjen på samma avstånd till linjen?

Om det inte går att bara se det...

Kan du säga vad planets normal blir?

planets ekvation är : p = span { <1,1,0> , <0,0,1> } . En normal är <-1,1,0>

Men hur ser du speglingen när spegeln är vriden? Blir osäker när spegeln inte är horisontell eller vertikal

Bedinsis Online 3316
Postad: 8 aug 16:36

Just det, en normal är <-1,1,0>.

Kan du applicera speglingsformeln a ↦ a - 2 projb(a) a är en vektor helt i x1-led eller helt i x2-led?

b ges här av planets normal.

brunbjörn 238
Postad: 8 aug 16:41
Bedinsis skrev:

Just det, en normal är <-1,1,0>.

Kan du applicera speglingsformeln a ↦ a - 2 projb(a) a är en vektor helt i x1-led eller helt i x2-led?

b ges här av planets normal.

Jo men asså är ju osäker kring när den formen används (dvs. i vilka sammanhang) 

Bedinsis Online 3316
Postad: 8 aug 16:46

När man vill spegla i ett plan.

brunbjörn 238
Postad: 8 aug 16:57
Bedinsis skrev:

När man vill spegla i ett plan.

känns som att jag bara använder en formel utan att veta vad jag håller på med då... hur ser du vad reflektionen blir?  

Bedinsis Online 3316
Postad: 8 aug 17:14

Vektorn a kommer gå från origo till punkten som motsvarar dess koordinater.

Vektorn a - projb(a) kommer motsvara a minus a:s projektion på vektorn b. Vektorn b var planets normal, så genom att jobba på detta viset kommer vi endast ha kvar de bitar i a som har en utsträckning i planet, eftersom vi projicerat bort de bitar som har en utsträckning utanför planet.

Eftersom vektorn a - projb(a) pekar från origo till den punkt i planet som ligger närmast a så vill vi nu röra oss lika långt från planet som a befinner sig fast i andra riktningen. Eftersom vi fortfarande skall röra oss i normalens riktning och att det skall vara samma avstånd så skall vi subtrahera med igen projb(a), så i slutändan har vi vektorn a - projb(a) - projb(a) = a - 2*projb(a).

Rita upp en bild om du känner dig osäker. Hitta på ett a, rita upp dess vektor, rita upp dess projektion på normalen b, dvs. projb(a).

D4NIEL 3345
Postad: 8 aug 17:23 Redigerad: 8 aug 17:25

Här är den bild jag brukar använda. Notera att det fungerar då origo ingår i planet. Du kan använda samma princip för en linje, men notera att du då behöver ta fram en normal till linjen (och att linjen ska gå genom origo).

P'=P-2P·N||N||2N=(E-2||N||2NNt)P=TRPP^\prime=P-2\frac{P\cdot N}{||N||^2}N=(E-\frac{2}{||N||^2}NN^t)P=T_RP

brunbjörn 238
Postad: 8 aug 17:41 Redigerad: 8 aug 17:42
D4NIEL skrev:

Här är den bild jag brukar använda. Notera att det fungerar då origo ingår i planet. Du kan använda samma princip för en linje, men notera att du då behöver ta fram en normal till linjen (och att linjen ska gå genom origo).

P'=P-2P·N||N||2N=(E-2||N||2NNt)P=TRPP^\prime=P-2\frac{P\cdot N}{||N||^2}N=(E-\frac{2}{||N||^2}NN^t)P=T_RP

Svaret på T(<1,0,0>) är enligt facit <0,1,0>  men jag får alltid det negativa av svaret... 

(jag föreställer mig att jag tittar ner på planet x1=x2, dvs så ser det ut som en linje då)

D4NIEL 3345
Postad: 8 aug 18:00 Redigerad: 8 aug 18:35

Planet x1=x2x_1=x_2 har ekvationen

x1-x2=0x_1-x_2=0 (Planets ekvation på normalform)

Du kan också uttrycka det som

-x1+x2=0-x_1+x_2=0

Alltså är två normaler (som pekar åt olika håll) n1=(1,-1,0)n_1=(1,-1,0) och n2=(-1,1,0)n_2=(-1,1,0)

Oavsett vilken normal du väljer ger reflektionsformeln vi härledde ovan för P=(1,0,0)P=(1,0,0)

(1,0,0)-2(1,0,0)·n||n||2n=(0,1,0)(1,0,0)-2\frac{(1,0,0)\cdot n}{||n||^2}n=(0,1,0)

Du kanske kan visa du hur du räknade ut din reflektion? Av din bild framgår också att punkten (1,0,0)(1,0,0) borde mappas till (0,1,0)(0,1,0) (tycker jag!).

brunbjörn 238
Postad: 8 aug 18:46
D4NIEL skrev:

Planet x1=x2x_1=x_2 har ekvationen

x1-x2=0x_1-x_2=0 (Planets ekvation på normalform)

Du kan också uttrycka det som

-x1+x2=0-x_1+x_2=0

Alltså är två normaler (som pekar åt olika håll) n1=(1,-1,0)n_1=(1,-1,0) och n2=(-1,1,0)n_2=(-1,1,0)

Oavsett vilken normal du väljer ger reflektionsformeln vi härledde ovan för P=(1,0,0)P=(1,0,0)

(1,0,0)-2(1,0,0)·n||n||2n=(0,1,0)(1,0,0)-2\frac{(1,0,0)\cdot n}{||n||^2}n=(0,1,0)

Du kanske kan visa du hur du räknade ut din reflektion? Av din bild framgår också att punkten (1,0,0)(1,0,0) borde mappas till (0,1,0)(0,1,0) (tycker jag!).

 räknade inte ut reflektionen försökte ”se” den men nu när jag föreställer mig att planet är en spegel så ser jag faktiskt hur facit fick svaret! MEN när jag härleder formeln så får jag det till: vilket är samma som din FAST gånger -1 ☹️ 

D4NIEL 3345
Postad: 8 aug 20:14 Redigerad: 8 aug 20:24

Ja, du har härlett en formel som bygger på att man projicerar på planet istället för att projicera på planets normal. Den ger såklart också rätt svar

r=2Projb((1,0,0))-(1,0,0)=(0,1,0)\vec{r}=2\mathrm{Proj}_{\vec{b}}((1,0,0))-(1,0,0)=(0,1,0)

Att projicera på planet är dock en liten omväg. Man kan t.ex. göra såhär för att hitta projektionen på planet:

Projba=a-a·n||n||2n=a-Projna\mathrm{Proj}_{\vec{b}}\left(\vec{a}\right)=\vec{a}-\frac{a\cdot \vec{n}}{||\vec{n}||^2}\vec{n}=\vec{a}-\mathrm{Proj}_{\vec{n}}\left(\vec{a}\right)

Om man sätter in projektionen som använder planets normal i din formel får man den "vanliga" formeln för reflektion

2Projba-a=a-2Projn(a)2\mathrm{Proj}_{\vec{b}}\left(\vec{a}\right)-\vec{a}=\vec{a}-2\mathrm{Proj}_{\vec{n}}(\vec{a})

Notera att det du kallar b\vec{b} alltså är projektionen av a\vec{a} på planet men att man i de vanliga formlerna använder projektionen av a\vec{a}planets normal.

brunbjörn 238
Postad: 8 aug 20:32
D4NIEL skrev:

Ja, du har härlett en formel som bygger på att man projicerar på planet istället för att projicera på planets normal. Den ger såklart också rätt svar

r=2Projb((1,0,0))-(1,0,0)=(0,1,0)\vec{r}=2\mathrm{Proj}_{\vec{b}}((1,0,0))-(1,0,0)=(0,1,0)

Att projicera på planet är dock en liten omväg. Man kan t.ex. göra såhär för att hitta projektionen på planet:

Projba=a-a·n||n||2n=a-Projna\mathrm{Proj}_{\vec{b}}\left(\vec{a}\right)=\vec{a}-\frac{a\cdot \vec{n}}{||\vec{n}||^2}\vec{n}=\vec{a}-\mathrm{Proj}_{\vec{n}}\left(\vec{a}\right)

Om man sätter in projektionen som använder planets normal i din formel får man den "vanliga" formeln för reflektion

2Projba-a=a-2Projn(a)2\mathrm{Proj}_{\vec{b}}\left(\vec{a}\right)-\vec{a}=\vec{a}-2\mathrm{Proj}_{\vec{n}}(\vec{a})

Notera att det du kallar b\vec{b} alltså är projektionen av a\vec{a} på planet men att man i de vanliga formlerna använder projektionen av a\vec{a}planets normal.

dum fråga kanske men hur vet du att min formlen projecerar på planet medan din på normalen? Så min formel är inte felaktig?

D4NIEL 3345
Postad: 8 aug 20:44 Redigerad: 8 aug 21:16

Din formel är korrekt om man tolkar din figur som att den rödmarkerade vektorn är det du avser med projektionen, alltså

Är denna del av vektorn (som ligger i planet, dvs projektionen av vektorn a\vec{a} på planet):

Är du med? Men att beräkna b\vec{b} kräver ju att du ändå använder planets normal eller bestämmer en bas för planet. 

Det du kallar c=a-Projba\vec{c}=\vec{a}-\mathrm{Proj}_{\vec{b}}\left(\vec{a}\right) är en normal till planet, närmare bestämt c=Projna\vec{c}=\mathrm{Proj}_{\vec{n}}\left(\vec{a}\right). dvs projektionen av a\vec{a} på planets normal.

brunbjörn 238
Postad: 9 aug 15:39
D4NIEL skrev:

Din formel är korrekt om man tolkar din figur som att den rödmarkerade vektorn är det du avser med projektionen, alltså

Är denna del av vektorn (som ligger i planet, dvs projektionen av vektorn a\vec{a} på planet):

Är du med? Men att beräkna b\vec{b} kräver ju att du ändå använder planets normal eller bestämmer en bas för planet. 

Det du kallar c=a-Projba\vec{c}=\vec{a}-\mathrm{Proj}_{\vec{b}}\left(\vec{a}\right) är en normal till planet, närmare bestämt c=Projna\vec{c}=\mathrm{Proj}_{\vec{n}}\left(\vec{a}\right). dvs projektionen av a\vec{a} på planets normal.

Fattar inte vad för fel jag gör när jag använder formeln rakt av…. 

D4NIEL 3345
Postad: 9 aug 16:31 Redigerad: 9 aug 16:49

Din formel bygger som sagt på projektion utmed den vektor du kallar b\vec{b}. Den är INTE riktad åt samma håll som normalen, tvärtom är den vinkelrät mot normalen. Så här:

Normalen till planet är den gröna pilen. Du försöker använda den som b\vec{b} i din projektion. Använd istället b=a-ProjN(a)\vec{b}=\vec{a}-Proj_{N}(\vec{a}) om du ska använda din egen formel. 

Jag tror du blandar ihop formeln du lärt dig för att projicera utmed en vektor med projektion på ett plan, trots att planets normal är vinkelrät mot alla vektorer som ligger i planet. Blanda alltså inte ihop de snarlika koncepten projektion på plan och projektion utmed en vektor.

Du kan tänka dig att vektorn a\vec{a} består av två delar, en del b\vec{b} som är parallell med planet och en del c\vec{c} som är ortogonal (vinkelrät) mot planet. Detta är samma beteckningar du använder i din skiss. Alltså

a=b+c\vec{a}=\vec{b}+\vec{c}

Den ortogonala delen c\vec{c} är parallell med normalen till planet. 

brunbjörn 238
Postad: 9 aug 16:59
D4NIEL skrev:

Din formel bygger som sagt på projektion utmed den vektor du kallar b\vec{b}. Den är INTE riktad åt samma håll som normalen, tvärtom är den vinkelrät mot normalen. Så här:

Normalen till planet är den gröna pilen. Du försöker använda den som b\vec{b} i din projektion. Använd istället b=a-ProjN(a)\vec{b}=\vec{a}-Proj_{N}(\vec{a}) om du ska använda din egen formel. 

Jag tror du blandar ihop formeln du lärt dig för att projicera utmed en vektor med projektion på ett plan, trots att planets normal är vinkelrät mot alla vektorer som ligger i planet. Blanda alltså inte ihop de snarlika koncepten projektion på plan och projektion utmed en vektor.

Det som förvirrar mig är att om jag inte skulle ha en aning kring vad reflektionen blir så hur hade jag då vetat vilken vektor b är?

Nu är det så att jag "ser" att normalen inte kan varaEFTERSOM jag ser vad reflektionen blir.... dessutom det faktum att din och min formel inte är samma känns förvirrande 😕

D4NIEL 3345
Postad: 9 aug 17:21 Redigerad: 9 aug 17:24

Du har en triangel som ser ut så här:

a=b+c\vec{a}=\vec{b}+\vec{c}

Vi löser ut b\vec{b}

b=a-c\vec{b}=\vec{a}-\vec{c}

c\vec{c} är projektionen av a\vec{a} på planets normal:

c=Projn(a)\vec{c}=\mathrm{Proj}_{\vec{n}}(\vec{a})

Alltså kan du beräkna b\vec{b} för varje a\vec{a} och sedan använda din formel. Det är detta jag menar med att det blir ett extra steg att använda din formel.

För a=(1,0,0)\vec{a}=(1,0,0) blir b=(12,12,0)\vec{b}=(\frac12, \frac12,0) och

2Projb(a)-a=(0,1,0)2\mathrm{Proj}_{\vec{b}}(\vec{a})-\vec{a}=(0,1,0)

brunbjörn 238
Postad: 9 aug 17:50
D4NIEL skrev:

Du har en triangel som ser ut så här:

a=b+c\vec{a}=\vec{b}+\vec{c}

Vi löser ut b\vec{b}

b=a-c\vec{b}=\vec{a}-\vec{c}

c\vec{c} är projektionen av a\vec{a} på planets normal:

c=Projn(a)\vec{c}=\mathrm{Proj}_{\vec{n}}(\vec{a})

Alltså kan du beräkna b\vec{b} för varje a\vec{a} och sedan använda din formel. Det är detta jag menar med att det blir ett extra steg att använda din formel.

För a=(1,0,0)\vec{a}=(1,0,0) blir b=(12,12,0)\vec{b}=(\frac12, \frac12,0) och

2Projb(a)-a=(0,1,0)2\mathrm{Proj}_{\vec{b}}(\vec{a})-\vec{a}=(0,1,0)

fast vad menar du med " Alltså kan du beräkna b för varje a"? hur vet man ens vad b är? 

D4NIEL 3345
Postad: 9 aug 18:11 Redigerad: 9 aug 18:16

Du vet inte vad b\vec{b} är. Du måste beräkna b\vec{b} för varje a\vec{a}

b=a-ProjN(a)\vec{b}=\vec{a}-\mathrm{Proj}_{N}(\vec{a})

För a=(1,0,0)a=(1,0,0) blir  b=(12,12,0)b=(\frac12, \frac12,0)

För a=(0,1,0)a=(0,1,0) blir  b=(12,12,0)b=(\frac12, \frac12,0)

För a=(0,0,1)a=(0,0,1) blir  b=(0,0,1)b=(0,0,1) (Planet är ju x1=x2x_1=x_2))

(Det var förövrigt du själv som definierade vektor b\vec{b} i din skiss, så nu får du ta ansvar för den!  :-)

brunbjörn 238
Postad: 9 aug 18:24
D4NIEL skrev:

Du vet inte vad b\vec{b} är. Du måste beräkna b\vec{b} för varje a\vec{a}

b=a-ProjN(a)\vec{b}=\vec{a}-\mathrm{Proj}_{N}(\vec{a})

För a=(1,0,0)a=(1,0,0) blir  b=(12,12,0)b=(\frac12, \frac12,0)

För a=(0,1,0)a=(0,1,0) blir  b=(12,12,0)b=(\frac12, \frac12,0)

För a=(0,0,1)a=(0,0,1) blir  b=(0,0,1)b=(0,0,1) (Planet är ju x1=x2x_1=x_2))

(Det var förövrigt du själv som definierade vektor b\vec{b} i din skiss, så nu får du ta ansvar för den!  :-)

det var inte jag, det var han 😬Hur tar du fram din formel? 

D4NIEL 3345
Postad: 9 aug 18:38 Redigerad: 9 aug 18:53

Jag ritar bara upp planet med en godtycklig punkt(röd) och dess spegling (blå). Så här

Sedan tänker jag mig att jag ställer mig i origo (O)  och går först a\vec{a} till A och sedan -2 ProjN(a)\mathrm{Proj}_N(\vec{a}) rakt ned till B. Är du med?

Notera också att videon du tittat på verkar vara reflektion över en  vektor (linje). Det vi gör är att reflektera i ett plan med en normal (normalen är en vektor som är vinkelrät mot planet). Eftersom vi redan har normalen till planet är det enkelt att beräkna vektorn ProjN(a)\mathrm{Proj}_N(\vec{a}), dvs projektionen av a\vec{a} på normalen.

brunbjörn 238
Postad: 9 aug 19:17 Redigerad: 9 aug 19:27
D4NIEL skrev:

Jag ritar bara upp planet med en godtycklig punkt(röd) och dess spegling (blå). Så här

Sedan tänker jag mig att jag ställer mig i origo (O)  och går först a\vec{a} till A och sedan -2 ProjN(a)\mathrm{Proj}_N(\vec{a}) rakt ned till B. Är du med?

Notera också att videon du tittat på verkar vara reflektion över en  vektor (linje). Det vi gör är att reflektera i ett plan med en normal (normalen är en vektor som är vinkelrät mot planet). Eftersom vi redan har normalen till planet är det enkelt att beräkna vektorn ProjN(a)\mathrm{Proj}_N(\vec{a}), dvs projektionen av a\vec{a} på normalen.

Jaha.... så b är egentligen onödig? så själva "algoritmen" är:

1. hitta en normal till planet (alternativ till linjen om vektorn ska reflekteras på en linje) 

2. räkna ut projN(a), N en normal till planet (eller linjen) 

3. räkna ut:

T(<1,0,0>) = <1,0,0> -2projN(<1,0,0>)

T(<0,1,0>) = <0,1,0> -2projN(<0,1,0>)

T(<0,0,1>) = <0,0,1> -2projN(<0,0,1>)

Med den formlen dvs r = a - 2projN(a), r är a:s reflektion,  så behöver man inte ens rita upp planet, bara följa stegen ovan 

D4NIEL 3345
Postad: 9 aug 20:18 Redigerad: 9 aug 20:22

Ja, förutom att du kan stryka steg 2. ovan eftersom det ingår i steg 3. Sammanfattningsvis kan man säga att:

När du har ett plan är normalen NN lätt tillgänglig. När du istället har en linje är det ofta linjens riktningsvektor b\vec{b} som är lätt tillgänglig. Vilken projektionsformel du väljer att använda beror på vad som är lätt tillgängligt.

Du behöver inte rita upp planet. Men jag skulle rekommendera dig att rita, tänka och tydligt sätta ut dina vektorer eftersom det är annars är lätt att blanda ihop saker :-)

brunbjörn 238
Postad: 9 aug 20:52
D4NIEL skrev:

Ja, förutom att du kan stryka steg 2. ovan eftersom det ingår i steg 3. Sammanfattningsvis kan man säga att:

När du har ett plan är normalen NN lätt tillgänglig. När du istället har en linje är det ofta linjens riktningsvektor b\vec{b} som är lätt tillgänglig. Vilken projektionsformel du väljer att använda beror på vad som är lätt tillgängligt.

Du behöver inte rita upp planet. Men jag skulle rekommendera dig att rita, tänka och tydligt sätta ut dina vektorer eftersom det är annars är lätt att blanda ihop saker :-)

Tack för hjälpen och ditt enorma tålamod ❤️❤️❤️ 

Svara
Close