1129
Neumann János, Nikola Tesla, Albert Einstein
-
szabiku #1129 Ennyi belefér... kicsit elbízta magát, de majd rájön, ha akar. -
hiper fizikus #1128 Szia Szabiku !
Ha sérteget valaki, akkor inkább ignoráld, és ne heceld ! Azaz ne etesd a trolkodókat !
-
szabiku #1127 Amnéziás vagy? Elfelejtetted a jelszavad?
>"nincs Z (mozgas) iranyu komponense sem a magneses ter vektoranak, sem az elektromos ter vektoranak."
#Nem is kell. Én sem állítottam ilyet. Nem ezeket kvantáljuk, hanem a négyes vektorpotenciált.
>"Csak az A negyes vektorpotencialnak."
#Igen. És abban az irányban is kvantálni kell. Hehehe! Tökfej.
>"jeee, igazam volt xD"
#Lóherét! Azt sem tudod minek örülsz.. Nem érted, és csak úgy magadnak.
Utoljára szerkesztette: szabiku, 2018.07.13. 03:31:21 -
szabiku #1126 Nem égtem be, csak én nem szoktam foglalkozni a többnyire haszontalan geometriai szorzattal, úgyhogy nálam az ab kifejezés alapból a skalár szorzatot jelenti... Annyi rizsát löksz, hogy nem olvassa végig az ember, és már a felénél inkább válaszolgattam. Utána pedig kijavítottam, ahogy illik. -
mathman #1125 Ja a tetrahedron, amivel kiszamoltam a Standard Model osszes tolteset helyesen, tovabbi helyes adatokat szolgaltat.
A negy "os" vektor bozon a B0 W1 W2 W3 megegyezik a spinjegben talalhato 4 vektorral (spinors) csak itt a B0 az ido iranyba mutat. Szoval ez a spin jeg (quantum vacuum) 4 dimenzios.
A foton B0 es a W3 kevereke, es a Z bozon a -B0 W3 ami egyszeruen annyit jelent, hogy a Z eseten a B0 hullam visszafele halad az idoben, de elnyelodik a multban levo befagyott szupravezetoben, pont ugy, ahogy Anderson az leirta anno a szupravezeto femek eseten.
Tobb reszletet nem irok le, mert ILYENEKNEK teljesen felesleges xD
-
mathman #1124 mar az indexen beegtel, amikor kijelentetted a exterrior algebra wedge levezetesemre, hogy hibas
aztan (mikor gondolom kijozanodtal) beismerted, hogy helyes.
Azt sem tudod mit csinalsz xD -
mathman #1123 ezt hivjak ugy, hogy mellebeszeles.
Mivel a fizika nyelve a matek, szamoljuk ki
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <math.h>
struct vec4 {
double x,y,z,t;
vec4 operator - (vec4 v) {vec4 uu;uu.x=x-v.x;uu.y=y-v.y;uu.z=z-v.z;uu.t=t-v.t;return uu;};
vec4 operator / (double s) {vec4 uu;uu.x=x/s;uu.y=y/s;uu.z=z/s;uu.t=t/s;return uu;};
};
#define frand(u) (u*(double)(rand()%10000)/10000.0)
vec4 fncA(double t,double x,double y,double z)
{
vec4 v4;
double k=M_PI/180.0;
double phase=z*k - t*k;
v4.x=sin(phase)*100.0;
//v4.x=0.0;
v4.y=0.0;
v4.z= cos(phase)*100.0;//a hullam mozgas iranya, mivel phase=z*k
v4.t=-cos(phase)*100.0;//time
return v4;
}
void testtensor()
{
double x,y,z,t;
vec4 dAx,dAy,dAz,dAw;
double dt=0.01, dx=0.01, dy=0.01, dz=0.01;
x=frand(1000.0);
y=frand(1000.0);
z=frand(1000.0);
t=frand(1000.0);
//four gradient
dAw=(fncA(t+dt,x ,y ,z ) - fncA(t-dt,x ,y ,z ))/(dt*2.0);
dAx=(fncA(t ,x+dx,y ,z ) - fncA(t ,x-dx,y ,z ))/(dx*2.0);
dAy=(fncA(t ,x ,y+dy,z ) - fncA(t ,x ,y-dy,z ))/(dy*2.0);
dAz=(fncA(t ,x ,y ,z+dz) - fncA(t ,x ,y ,z-dz))/(dz*2.0);
double tensorF[4][4];
//exterior derivative Aij - Aji
tensorF[0][0]=dAw.t - dAw.t;
tensorF[0][1]=dAw.x - dAx.t;//Ex
tensorF[0][2]=dAw.y - dAy.t;//Ey
tensorF[0][3]=dAw.z - dAz.t;//Ez
tensorF[1][0]=dAx.t - dAw.x;
tensorF[1][1]=dAx.x - dAx.x;
tensorF[1][2]=dAx.y - dAy.x;//Bz
tensorF[1][3]=dAx.z - dAz.x;
tensorF[2][0]=dAy.t - dAw.y;
tensorF[2][1]=dAy.x - dAx.y;
tensorF[2][2]=dAy.y - dAy.y;
tensorF[2][3]=dAy.z - dAz.y;//Bx
tensorF[3][0]=dAz.t - dAw.z;
tensorF[3][1]=dAz.x - dAx.z;//By
tensorF[3][2]=dAz.y - dAy.z;
tensorF[3][3]=dAz.z - dAz.z;
if(fabs(tensorF[0][3])>1e-10 || fabs(tensorF[1][2])>1e-10)
{
printf("E %.3f %.3f %e \n",tensorF[0][1],tensorF[0][2],tensorF[0][3]);
printf("B %.3f %.3f %e \n",tensorF[2][3],tensorF[3][1],tensorF[1][2]);
printf("\n");
}
else printf("OK\n");
return;
}
int main()
{
for(int i=0;i<100;i++) testtensor();
return 0;
}
nincs Z (mozgas) iranyu komponense sem a magneses ter vektoranak, sem az elektromos ter vektoranak.
Csak az A negyes vektorpotencialnak.
jeee, igazam volt xD -
szabiku #1122 cyb3rcop írta: "Pontosan ezt történik. Csak nem a longitudinális komponens ejti ki, hanem a weak isospin 3. komponense ejti ki a weak hypercharge menetirányú komponensét."
Egy kicsit most összekombinálod a dolgokat, de amúgy értem, mit gondolsz.
Nos kisfiam, az a lényeg, hogy ejtse ki, mert ki kell, hogy ejtse.
Két olyan dolgot kombinálsz össze, amik bár egy helyen (dologban) csapódnak le, de mégis külön lapra tartoznak témaügyileg.
Az egyik a tömegadós egyesített kölcsönhatáselmélet (az elektro-gyenge kölcsönhatás egyesített elmélete), ami egy mérték-térelmélet, a másik pedig a konkrétabban és szigorúbban kvantummechanika alapú kvantum-térelmélet. A kettőnek van egy "kis" konfliktusa egymással, ugyanis még a(z említett) mértéktérelmélet vektorpotenciáljai(i) a Lagrange-sűrűségben mértékinvariánsak (mint a klasszikus elektrodinamika vektorpotenciálja), addig a kvantumtérelméletben éppen az eltűnő (vektor)részecskemező(pl. foton)-tömeg tiltja meg a szokásos mértékinvarianciát (ugyanis ekkor nem tűnhet el a negyedik kanonikus impulzus). Ez egy nagyon érdekes dolog. Ezen a ponton a két irányadó részecskefizikai elmélet nincs konzisztenciában.
Na de most nem is igazán ez a lényeg, hanem az, hogy az (általam és általad) említett kiejtés mindkét oldalról ugyanott (<-- szabadsági fok) jön létre. Viszont ezt nem írhatjuk külön elő, vagy ez miatt nem ennek megfelelően kvantálunk (pl. az elektromágneses teret csak a két transzverzális szabadsági fokra, elhagyva a longitudinális és "skalár" szabadsági fokokat), hanem ez a helyzet matematikailag automatikusan kell, hogy előálljon egy tisztességes elméletben, vagyis az elméleti alapaxiómák és a konstrukció együtteséből következően. Érdekes, hogy ebben a tekintetben (szimmetriák, és rejtett szabadsági fokok) a matematikai kép olyan nézetet vagy dolgokat is mutathat, amik valójában ekvivalensek (<-- pl. Higgs-mechanizmus eseténél) vagy (pl. longitudinális és skalár fotonállapotok -->) ellentétesen ekvivalensek, nem fizikaiak. Ilyenkor nincs igazán értelme azon vitatkozni (bár azért el lehet értelmesen filozofálgatni róla), hogy most akkor valójában ilyen vagy olyan a dolog képe, hogy abban valami valójában van vagy nincs. A lényeg az elméleti leírásban azon van, hogy a lehető legkevesebb axiomatikus kiindulásból (lehetőleg és szigorúan) toldozgatások nélkül a szerkezet által annak (automatikus) matematikájával álljon elő az összes tapasztalható eredmény. Erre a matematika igen komoly és bonyolult apparátusokat szolgáltat, ami szerintem így, a természeti valóság modellezését véve, méltán az ember legnagyobb alkotása. -
szabiku #1121 Ez az analógia egyáltalán nem ekvivalencia. A kvázi-részecske bár valódi, de mégsem olyan, mint a rendes (nem kvázi) részecske. A kvázi-részecske egy kvantumfizikai anyagháttéren (anyagban) jön létre és létezik. Ez pedig messze más dolog, mint a puszta vákuum háttéren létező részecske. -
cyb3rcop #1120 Arra nem képes, hogy elolvassa a wikipedia bejegyzést.
"Some condensed matter systems contain effective (non-isolated) magnetic monopole quasi-particles,[5] or contain phenomena that are mathematically analogous to magnetic monopoles"
en.wikipedia.org/wiki/Magnetic_monopole
A spinjégben vannak olyan effektív monopólok, amelyek Dirac-stringgel vannak összekötve.
"Experiments have found evidence for the existence of deconfined magnetic monopoles in these materials"
en.wikipedia.org/wiki/Spin_ice
Szerencsétlenek. Menjetek vissza játszani
-
cyb3rcop #1119 "Ennyi erővel azt is állíthatnánk, hogy az elektromágneses hullámoknak van longitudinális polarizációja,"
Pontosan ezt történik kisfiam. Csak nem a longitudinális komponens ejti ki, hanem a weak isospin 3. komponense ejti ki a weak hypercharge menetirányú komponensét.
www.nikhef.nl/~ivov/HiggsLectureNote.pdf
Utoljára szerkesztette: cyb3rcop, 2018.06.02. 14:11:19 -
szabiku #1118 #1111: "... még az előbbi négyes-vektorhullám esetében egy polarizációs egységvektor, mely a négyesimpulzus irányába mutat, vagy pontosabban fogalmazva skaláris szorzatuk nulla."
Ez azért érdekes nem?? -
Inquisitor #1117 Time Crystals to Tetraquarks: Quantum Physics in 2017
2017 jelentősebb kvantum fizikai eredményei. A lapozgatós résznél csak egy rövid kedvcsinálót találni, a kék linkeken lehet elérni az eredeti cikkeket. Hát van benne pár meredek cucc. Az én kedvencem ez itt:
A time crystal
Time crystals sound like talismans from a fantasy novel, but they're actually real quantum objects, generated for the first time in 2017. A time crystal is a unique state of matter, a group of ions lashed together with quantum links such that they shake, or oscillate, together at a repeating period. As long as the conditions they need to exist remain, time crystals become locked into a single moment in time; no matter how much energy gets pumped into them, they don't heat up or increase in entropy — effectively suspending the laws of thermodynamics as they're typically understood. -
szabiku #1116 Szia Hiper fizikus!
Szerintem a mágneses monopólus nem létezik, de azért igen érdekes annak fejtegetése, hogy hátha esetleg mégis. Egyrészt mert lehet vele tanulni, ugyanis elég tüzetesen át kell rágni hozzá a klasszikus elektrodinamikát (amivel szerintem az ellentmondásos), utána meg a részecskefizika mértéktérelméletét is, nem kis szinten, ugyanis a komolyabb monopólus elméletek szimmetriasértéses mértéktérelméletek, de szerintem végül ezek is problémásak az előbbihez hasonlóan. Nem véletlen, hogy idáig egy mágneses monopólust sem találtunk még. Mostanában megint foglalkoztam vele egy kicsit: http://forum.szkeptikus.hu/viewtopic.php?f=8&t=943&start=195
(Neem ) -
hiper fizikus #1115 Szia Szabiku!
A link ajánlóidat böngészve felfedeztem egy kis PDF cikket a mágneses monopólusról, mármint azt hogy a hiteles tudományos berkekben mit hordanak össze róla. Arra lennék kíváncsi, hogy mi értelme van ennek az egésznek a mágneses monopólusnak, mert én is kacérkodtam vele, de olyan hihetetlenül elképesztő?
Ugye avval nem hibáztam, hogy a legyengülésemről említést tettem?
Utoljára szerkesztette: hiper fizikus, 2017.12.15. 15:55:07 -
szabiku #1114 neyoo írta: "Az elteres:
megvaltoztak az amplitudok:
return fi*0.5;
return A*0.866;
es elfordult a vektorpotencial forgasi tengelye
float rotang=acos(0.5/0.866);
vec3 A=Xdir*sin(phase);
A+=Tdir*cos(phase)*cos(rotang);
A+=Ydir*cos(phase)*sin(rotang);
A forgatasi szog az igazan erdekes.
http://hyperphysics.phy-astr.gsu.edu/hbase/spin.html
sqrt(3)/2 = 0.866
Hogyan jon ide az elektron spinje?
Es hol a sqrt(2) amit a fotonrol szolo wikin olvasunk?
Nos van itt egy haromszog a haladasi iranyba. Az oldalainak hossza
Hbar *sqrt(1)
Hbar *sqrt(2)
Hbar *sqrt(3)"
neyoo írta: "Amennyiben ragaskodunk ahhoz, hogy a hypercharge es a weak isospin csatolasa 0.5 0.866 aranyu, akkor a menetiranyra merolegesen jobbra vagy balra forgo vektorokat kapunk. Erdekes modon a fotonnak pont ez a ket allapota lehetseges."
Ezek az arányok rögzítettek, ha a nulla tömegű fotonra akarunk jutni. Szóval ezt nem a természet választotta, hanem ez a célszerű (azaz tulajdonságilag jól elkülönülő) részecskeképhez vezető felbontáshoz kell. Ennek nincs köze ahhoz a spinhez, amit a részecskéknek tulajdonítanak. Viszont mind a fermion spin ábrázolásához, és mind a W, Z (, A, B) bozonok egybefoglalt ábrázolásához, a Pauli-féle mátrixok kellenek, és könnyen előfordul, hogy mindkét esetben felmerül a (gyök 3)/2 szám. Szerintem az összevonatkoztatásod nem O.K.
Utoljára szerkesztette: szabiku, 2017.12.09. 03:41:57 -
hiper fizikus #1113 Szia Neyoo!
Tetszik amiket írsz, csak annyit szeretnék megjegyezni hozzájuk, hogy ha hosszabb részt teszel be a hozzászólásodba, akkor azt légyszíves tedd SPOILER-ba. Ez a kifogás csak formális szeplő, nem érinti a tartalmaidat.
-
szabiku #1112 Néztem a csillószimulátor programjaidat, hát nem vagyok tőle elájulva.
Alább már minden információt megadtam.
Gondold át újra ezeket a "spin-skalár" elképzeléseidet, az utóbbi hozzászólásaim alapján.
Nem vagy egy jedi, de azért haloványan érzek benned némi erőt...
neyoo: :szabiku -
szabiku #1111 neyoo írta: "Tehat az elektromagneses ter egy skalar potencial es egy vektorpotencial kevereke."
Szóval ezt felejtsd el, vagy inkább tudd, hogy ezek a megnevezések a relativitáselméletet mellőző felfogásból lettek hagyományszerűen átemelve. Az elektrodinamika vektorpotenciálja egy négyesvektor, aminek a fenti két része a téridőben nem (négyes)vektor és nem (négyes)skalár.
Egy könyvben olvastam olyat is, hogy a négyes polarizációs vektor időszerű (longitudinális) komponensét skalárpolarizációnak is szokták nevezni, DE ez is egyrészt hagyományőrző elnevezés, VALAMINT másrészt rejtve CSAK úgy érti, hogy a térbeli forgatásokkal szemben skalárként viselkedő. Eléggé megtévesztőek ezek a szóhiányos (vagy magyarázó szöveghiányos) kevert elnevezések, ugyanis az említett (négyes értelemben hibásan elnevezett) "skalárpolarizáció" komponens nyilván nem négyesskalár, és nem is skalárhullám longitudinális polarizációját jelenti.
Ha elgondolunk egy négyes-skalárhullámot, akkor annak polarizációjáról (mint az előbbi négyes-vektorhullám esetében) értelmes beszélni, és ekkor mivel ez egy longitudinális hullám, a polarizációja egy longitudinális polarizációt jelent, ami valóban (négyes)skalárpolarizáció. Az ehhez tartozó irányultságot leíró mennyiség a hullám skalár jellege miatt egyszerűen egy 1-es szorzófaktor, még az előbbi négyes-vektorhullám esetében egy polarizációs egységvektor, mely a négyesimpulzus irányába mutat, vagy pontosabban fogalmazva skaláris szorzatuk nulla. (Tenzor- és spinorhullámok is hasonlóan...) -
szabiku #1110 neyoo írta: "csak ugy lehet a menetiranyra merolegesen rezgo hullamot letrehozni, ha ez a vektor forog. Tehat ez egy spin-hullam, ami egy p-hullamhoz kapcsolodott."
neyoo írta: "Ha ebben a mezoben egy hullam terjed, akkor az egy osszecsatolodott skalarmezoben terjedo p-wave es a vektormezoben terjedo spinhullam. Csak igy lehet a haladasi iranyra meroleges elektromos es magneses vektorokat kapni, amelyek nem masok, mint az mezo elso derivaltjai.
"The name P-wave can stand for either pressure wave "
en.wikipedia.org/wiki/P-wave"
Hibásan kevered ide a skalár nyomáshullámszerűséget. Ami négyesskalár, az hármasskalár is, de ez fordítva általában nem igaz. (Lásd pl. az energia.)
A négyes vektorpotenciálnak tulajdonképpen nincsen "skalárpotenciál" része, az csak a relativitáselméletet mellőző felfogásban van annak nevezve (tulajdonképpen hibásan), de a fogalmat (tulajdonképpen hibásan) átemeltük.
A spin(or)hullámot valószínűleg ebből a hibából kevered ide, de nyilván annak sincs itt helye. -
szabiku #1109 Igazából nem is csupán hasonlatos a példa, hanem ugyan arról van szó, csak más szemszögből. -
szabiku #1108 neyoo írta: "Szoval igen is csatolva vannak egymashoz, de a csatolas olyen, hogy eltunteti a mozgas iranyu komponenset a fotonnak, igy az haladhat fenysebesseggel."
Kontrázok: Na de mivel a matematikai bűvészkedésből mégis úgy jön ki az elektromágneses tér vektorpotenciálja, hogy nincsen a Lagrange-sűrűségben a Higgs-mezővel való kölcsönhatását jelentő tag, és ezzel összhangban tömegtag, ezért nincsenek csatolódva egymáshoz.
Egy hasonlatos példa: Ennyi erővel azt is állíthatnánk, hogy az elektromágneses hullámoknak van longitudinális polarizációja, csak éppen azt mindig kiejti a polarizációs vektor időszerű komponense... -
szabiku #1107 neyoo írta: "Szeretem a forumokat. Ugyan azt elmondja a csavo amit en, csak kiforgatja a szavakat."
Én csak helyesbítettem. A fizika megérdemel ennyit.
neyoo írta: "Ugyes vagy neked van igazad."
Na ugye.
neyoo írta: "Vagy egy hasonlo emberke, az sajat forumot keszitett, hogy mindig neki legyen igaza. Mekkora gaz."
Kire gondolsz? Kíváncsi vagyok...
Utoljára szerkesztette: szabiku, 2017.12.01. 21:58:13 -
szabiku #1106 Berakhatnád a program kódjaidat egy ilyen alá:
SPOILER! Kattints ide a szöveg elolvasásához!Program kód
-
neyoo #1104 Szeretem a forumokat. Ugyan azt elmondja a csavo amit en, csak kiforgatja a szavakat.
Ugyes vagy neked van igazad. Vagy egy hasonlo emberke, az sajat forumot keszitett, hogy mindig neki legyen igaza.
Mekkora gaz. -
neyoo #1103 A megoldas jo, csak szamolasi pontatlansag adta a mozgas iranyu komponens hibat.
Szoval az utobbi megoldas a helyes.
<!doctype html>
<html>
<body>
<canvas width = "570" height = "570" id = "my_Canvas"></canvas>
<script>
/*============= Creating a canvas ======================*/
var canvas = document.getElementById('my_Canvas');
gl = canvas.getContext('experimental-webgl');
/*========== Defining and storing the geometry ==========*/
var scl=10;
var vertices=new Array(32*32*32*2*3),i=0,j=0;
var colors=new Array(32*32*32*2*3);
for(z=0;z<32;z++)
for(y=0;y<32;y++)
for(x=0;x<32;x++)
if(x==0 || y==0 || z==0)
{
vertices[i++]=x/scl;
vertices[i++]=y/scl;
vertices[i++]=z/scl;
vertices[i++]=x/scl;
vertices[i++]=y/scl;
vertices[i++]=z/scl;
colors[j++]=0;
colors[j++]=0;
colors[j++]=0;
colors[j++]=1;
colors[j++]=1;
colors[j++]=1;
}
// Create and store data into vertex buffer
var vertex_buffer = gl.createBuffer ();
gl.bindBuffer(gl.ARRAY_BUFFER, vertex_buffer);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW);
// Create and store data into color buffer
var color_buffer = gl.createBuffer ();
gl.bindBuffer(gl.ARRAY_BUFFER, color_buffer);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(colors), gl.STATIC_DRAW);
/*=================== SHADERS =================== */
var vertCode = 'attribute vec3 position;'+
'uniform mat4 Pmatrix;'+
'uniform mat4 Vmatrix;'+
'uniform mat4 Mmatrix;'+
'uniform float Mtime2;'+
'uniform int Mmode;'+
'uniform vec3 Mpencolor;'+
'attribute vec3 color;'+
'varying vec3 vColor;'+
'float fncFI(float x,float y,float z){'+
' vec3 Pos=vec3(x,0.0,0.0);'+
' float dist=length(Pos);'+
' float k=3.1415926/2.0;'+
' float phase=dist*k - Mtime2;'+
' float fi=-cos(phase);'+
' return fi*0.5;'+
'}'+
'vec3 fncA(float x,float y,float z,float delta){'+
' vec3 Pos=vec3(x,0.0,0.0);'+
' float dist=length(Pos);'+
' float k=3.1415926/2.0;'+
' float phase=(dist + delta)*k -Mtime2;'+
' vec3 Tdir=normalize(Pos);'+
' vec3 Xdir=cross(Tdir,Tdir.yzx);'+
' vec3 Ydir=normalize(cross(Xdir,Tdir));'+
' Xdir =normalize(cross(Tdir,Ydir));'+
' float rotang=acos(0.5/0.866);'+
' vec3 A=Xdir*sin(phase);'+
' A+=Tdir*cos(phase)*cos(rotang);'+
' A+=Ydir*cos(phase)*sin(rotang);'+
' return A*0.866;'+
'}'+
'vec3 fncEgrad(float x,float y,float z){'+
' float dx=0.0001;'+
' float A=fncFI(x,y,z);'+
' float Adx=fncFI(x+dx,y,z);'+
' float Ady=fncFI(x,y+dx,z);'+
' float Adz=fncFI(x,y,z+dx);'+
' vec3 dA=(fncA(x,y,z,0.0)-fncA(x,y,z,-dx))/dx;'+
' vec3 gradFI=vec3((Adx-A)/dx,(Ady-A)/dx,(Adz-A)/dx);'+
' return -gradFI -dA;'+
'}'+
'vec3 curlA(float x,float y,float z){'+
' float dx=0.0001;'+
' vec3 dAx=(fncA(x+dx,y,z,0.0) - fncA(x-dx,y,z,0.0))/(2.0*dx);'+
' vec3 dAy=(fncA(x,y+dx,z,0.0) - fncA(x,y-dx,z,0.0))/(2.0*dx);'+
' vec3 dAz=(fncA(x,y,z+dx,0.0) - fncA(x,y,z-dx,0.0))/(2.0*dx);'+
' vec3 curl=-vec3((dAz.y)-(dAy.z),'+
' (dAx.z)-(dAz.x),'+
' (dAy.x)-(dAx.y));'+
' return curl;'+
'}'+
'void main(void) { '+
' float scalef=0.22;'+
' float x=position.x;'+
' float y=position.y;'+
' float z=position.z;'+
' vec3 dir;'+
' if(Mmode==1) dir=color*fncEgrad(x,y,z);'+
' if(Mmode==2) dir=color*curlA(x,y,z);'+
' if(Mmode==3) dir=color*fncA(x,y,z,0.0);'+
// ' vec3 tang=normalize(vec3(x,0.0,0.0));'+
// ' dir=tang*dot(tang,dir);'+
' gl_Position = Pmatrix*Vmatrix*Mmatrix*vec4(position+dir*scalef, 1.0);'+
' vColor=Mpencolor;'+
'}';
var fragCode = 'precision mediump float;'+
'varying vec3 vColor;'+
'void main(void) {'+
' gl_FragColor = vec4(vColor, 1.0);'+
'}';
var vertShader = gl.createShader(gl.VERTEX_SHADER);
gl.shaderSource(vertShader, vertCode);
gl.compileShader(vertShader);
var fragShader = gl.createShader(gl.FRAGMENT_SHADER);
gl.shaderSource(fragShader, fragCode);
gl.compileShader(fragShader);
var shaderprogram = gl.createProgram();
gl.attachShader(shaderprogram, vertShader);
gl.attachShader(shaderprogram, fragShader);
gl.linkProgram(shaderprogram);
/*======== Associating attributes to vertex shader =====*/
var _Pmatrix = gl.getUniformLocation(shaderprogram, "Pmatrix");
var _Vmatrix = gl.getUniformLocation(shaderprogram, "Vmatrix");
var _Mmatrix = gl.getUniformLocation(shaderprogram, "Mmatrix");
var _Mtime2 = gl.getUniformLocation(shaderprogram, "Mtime2");
var _Mpencolor = gl.getUniformLocation(shaderprogram, "Mpencolor");
var _Mmode = gl.getUniformLocation(shaderprogram, "Mmode");
gl.bindBuffer(gl.ARRAY_BUFFER, vertex_buffer);
var _position = gl.getAttribLocation(shaderprogram, "position");
gl.vertexAttribPointer(_position, 3, gl.FLOAT, false,0,0);
gl.enableVertexAttribArray(_position);
gl.bindBuffer(gl.ARRAY_BUFFER, color_buffer);
var _color = gl.getAttribLocation(shaderprogram, "color");
gl.vertexAttribPointer(_color, 3, gl.FLOAT, false,0,0) ;
gl.enableVertexAttribArray(_color);
gl.useProgram(shaderprogram);
/*==================== MATRIX ====================== */
function get_projection(angle, a, zMin, zMax) {
var ang = Math.tan((angle*.5)*Math.PI/180);//angle*.5
return [
0.5/ang, 0 , 0, 0,
0, 0.5*a/ang, 0, 0,
0, 0, -(zMax+zMin)/(zMax-zMin), -1,
0, 0, (-2*zMax*zMin)/(zMax-zMin), 0
];
}
var proj_matrix = get_projection(40, canvas.width/canvas.height, 1, 100);
var mo_matrix = [ 1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1 ];
var view_matrix = [ 1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1 ];
view_matrix[14] = view_matrix[14]-6;
/*================= Mouse events ======================*/
var AMORTIZATION = 0.95;
var drag = false;
var old_x, old_y;
var dX = 0, dY = 0;
var mouseDown = function(e) {
drag = true;
old_x = e.pageX, old_y = e.pageY;
e.preventDefault();
return false;
};
var mouseUp = function(e){
drag = false;
};
var mouseMove = function(e) {
if (!drag) return false;
dX = (e.pageX-old_x)*2*Math.PI/canvas.width,
dY = (e.pageY-old_y)*2*Math.PI/canvas.height;
THETA+= dX;
PHI+=dY;
old_x = e.pageX, old_y = e.pageY;
e.preventDefault();
};
canvas.addEventListener("mousedown", mouseDown, false);
canvas.addEventListener("mouseup", mouseUp, false);
canvas.addEventListener("mouseout", mouseUp, false);
canvas.addEventListener("mousemove", mouseMove, false);
/*=========================rotation================*/
function rotateX(m, angle) {
var c = Math.cos(angle);
var s = Math.sin(angle);
var mv1 = m[1], mv5 = m[5], mv9 = m[9];
m[1] = m[1]*c-m[2]*s;
m[5] = m[5]*c-m[6]*s;
m[9] = m[9]*c-m[10]*s;
m[2] = m[2]*c+mv1*s;
m[6] = m[6]*c+mv5*s;
m[10] = m[10]*c+mv9*s;
}
function rotateY(m, angle) {
var c = Math.cos(angle);
var s = Math.sin(angle);
var mv0 = m[0], mv4 = m[4], mv8 = m[8];
m[0] = c*m[0]+s*m[2];
m[4] = c*m[4]+s*m[6];
m[8] = c*m[8]+s*m[10];
m[2] = c*m[2]-s*mv0;
m[6] = c*m[6]-s*mv4;
m[10] = c*m[10]-s*mv8;
}
/*=================== Drawing =================== */
var THETA = 0,
PHI = 0;
var time_old = 0;
var animate = function(time) {
var dt = time-time_old;
if (!drag) {
dX *= AMORTIZATION, dY*=AMORTIZATION;
THETA+=dX, PHI+=dY;
}
//set model matrix to I4
mo_matrix[0] = 1, mo_matrix[1] = 0, mo_matrix[2] = 0, mo_matrix[3] = 0,
mo_matrix[4] = 0, mo_matrix[5] = 1, mo_matrix[6] = 0, mo_matrix[7] = 0,
mo_matrix[8] = 0, mo_matrix[9] = 0, mo_matrix[10] = 1, mo_matrix[11] = 0,
mo_matrix[12] = 0, mo_matrix[13] = 0, mo_matrix[14] = 0, mo_matrix[15] = 1;
rotateY(mo_matrix, THETA);
rotateX(mo_matrix, PHI);
time_old = time;
gl.enable(gl.DEPTH_TEST);
// gl.depthFunc(gl.LEQUAL);
gl.clearColor(0.0, 0.0, 0.0, 0.9);
gl.clearDepth(1.0);
gl.viewport(0.0, 0.0, canvas.width, canvas.height);
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
gl.uniformMatrix4fv(_Pmatrix, false, proj_matrix);
gl.uniformMatrix4fv(_Vmatrix, false, view_matrix);
gl.uniformMatrix4fv(_Mmatrix, false, mo_matrix);
gl.uniform1f(_Mtime2, time*1e-3);
gl.bindBuffer(gl.ARRAY_BUFFER, vertex_buffer);
if( 1)// 1 vs 0
{
gl.uniform3f(_Mpencolor, 0.0,0.0,1.0);//blue fncEgrad = E field
gl.uniform1i(_Mmode, 1);
gl.drawArrays(gl.LINES, 0, 32*32*2*3);
gl.uniform3f(_Mpencolor, 1.0,0.0,0.0);//red curlA = B field
gl.uniform1i(_Mmode, 2);
gl.drawArrays(gl.LINES, 0, 32*32*2*3);
}else{
gl.uniform3f(_Mpencolor, 1.0,1.0,0.0);//yellow fncA = vector potential
gl.uniform1i(_Mmode, 2);
gl.drawArrays(gl.LINES, 0, 32*32*2*3);
}
window.requestAnimationFrame(animate);
}
animate(0);
</script>
</body>
</html>
-
szabiku #1102 neyoo írta: "Nezd ez mar nagyon filozofia jellegu okfejtes. Ha a foton ket allapot keverekeben van, akkor az nem alapallapotu foton.
Akkor megfelel neked ha azt mondom, hogy nincs linearisan polarizalt alap allapota a fotonnak?"
Nem. Egyáltalán nem filozofikus. Ez alapvető kvantummechanika.
Már mondtam, hogy nem keverékről van szó, hanem szuperpozícióról. A kettő egyáltalán nem ugyan az.
Az alapállapot is mást jelent a kvantummechanikában, mint amire most használod.
Úgy felel meg, ha azt mondod, hogy ha az olyan állapotokat tekintjük, amiben a fotonnak a "spinje" (vagy impulzusmomentuma, helicitása) határozott értéket vesz fel, akkor ebbe nem tartozik bele a lineárisan polarizált állapota, hanem csak a cirkulárisan polarizált.
Ennek ellenkezője:
Ha az olyan állapotokat tekintjük, amiben a fotonnak a "spinje" (vagy impulzusmomentuma, helicitása) nem vesz fel határozott értéket, akkor ebbe nem tartozik bele a cirkulárisan polarizált állapota, hanem csak a lineárisan polarizált. -
neyoo #1101 Egyeb irant meg nincs vege. Ugyanis az elektromos ter mozgas iranyu komponense ugyan eltunt, de a magneses vektore meg nem. Ez a kovetkezo lepes.
-
neyoo #1100 Nezd ez mar nagyon filozofia jellegu okfejtes. Ha a foton ket allapot keverekeben van, akkor az nem alapallapotu foton.
Akkor megfelel neked ha azt mondom, hogy nincs linearisan polarizalt alap allapota a fotonnak?
Mas tema. Ugye mindenhol ugy irjak, hogy az elektromagneses-ter nincs csatolva a Higgs-mezohoz. Hogy ez mennyire felrevezeto mondat, azt nagyon egyszeru meglatni.
en.wikipedia.org/wiki/Weak_hypercharge
A tablazatbol kiolvashato, hogy a Higgs toltese 1 Y hypercharge es 0.5 T3 a weak isospin 3. komponense.
Nos a foton mezo ugyan ennek a ket toltesnek a kevereke.
en.wikipedia.org/wiki/Standard_Model_(mathematical_formulation)#Bosons
A B0 a weak hypercharge kozvetitoje volt a simmetria serulese elott, a W3 a weak isospin 3, komponense.
Szoval igen is csatolva vannak egymashoz, de a csatolas olyen, hogy eltunteti a mozgas iranyu komponenset a fotonnak, igy az haladhat fenysebesseggel. Ugyanis a tomeg nem mas, mint a rezges mozgas iranyu komponense, Hiszen olyan nem lehet fenysebessegnel. Ez a Lorentz transzformaciobol kovetkezik.
Errol Susskind is beszel valahol, azt hiszem a Higgs mezorol szolo videojaban. -
szabiku #1099 "De ez nem jelenti azt, hogy van olyan foton."
Hmm...
"Nincs nulla spinu foton, mert az skalar bozon lenne. A foton vektor bozon, mint a Z es a W.
A vektor pedig annyit jelent, hogy van spinje."
Nem. (Ez ennél jóval bonyolultabb...) Csupán azt jelenti, hogy az egyrészecske (tehát maga a részecske alapvetően) milyen hullámfüggvénnyel, vagy milyen jellegű mennyiséggel írható le. (Pl. kétfotonos rendszernek már van skalár összetevője is, melyhez nulla "spin"-t lehet rendelni...)
Nézeted szerint viszont felmerül a kérdés, hogy a lineáris polarizációjú szuperpozíciós állapot létezik-e egyfoton esetén. Szerintem és a kísérletek szerint igen. (Szuperpozíciós állapotról van szó ugye, és nem pedig kevert állapotról, mert az nem is a kvantummechanika tárgykörébe tartozik...) Annak ellenére, hogy a foton vektor részecske, még teljesen érvényes állapot rá a lineárisan polarizált állapot. Ez pedig szerintem kielégítő arra, hogy létezik ilyen foton. Az egy másik kérdés, hogy ebben a lineárisan polarizált állapotban határozott-e a "spinje" (vagy impulzusmomentuma, helicitása). A válasz az, hogy nem.
Tehát azt gondold át, hogy álláspontod szerint miért ne létezhetne olyan foton, melynek nincs határozott "spinje" (vagy impulzusmomentuma, helicitása). Vagy egyszerűbben mondva, szerinted miért ne létezhetne lineárisan polarizált foton. -
szabiku #1098 neyoo írta: "Szoval a vektor potencial komponense nezhet a menetiranyba, de a skalarpotencial eltunteti annak az elso derivaltjat"
OK. ennek rosszallását elszúrtam lentebb, mert a skalárpotenciál nulla értékének választása mellett gondolkodtam. (Ahogyan azt választják az EM-tér kvantálásánál...) -
neyoo #1097 Igen, a jelenlegi kvantum fizika megengedi mindket bazist. Felepitheted ugy is, hogy a ket linearisan polarizalt allapot az alapallapot. De ez nem jelenti azt, hogy van olyan foton. Nincs nulla spinu foton, mert az skalar bozon lenne. A foton vektor bozon, mint a Z es a W.
A vektor pedig annyit jelent, hogy van spinje. -
neyoo #1096 "A négyes hullámszám vektor négyzete"
Igy igaz. Semmifele hullamkomponens nincs menetiranyba. Ezt lathatod a szimulacioban. Eltunt.
Ezt igazabol ugyan az okozza, mint ami tomeget ad a Z bozonnak, csak a fazis ellentetes. Ezt irja le a Weinberg szog.
A skalarpotencial valojaban a hypercharge / hipertolteshez kapcsolhato. Elvileg az egy vektormezo, de amennyiben az idodimenzio fele mutat, mi egy skalarmezonek hisszuk azt. Ehhez kapcsolodik a skalar Higgs mezo is, hiszen annak hipertoltese van.
A vektor potencial viszont a weak isospinhez kapcsolodik. Mint lathato, csak ugy lehet a menetiranyra merolegesen rezgo hullamot letrehozni, ha ez a vektor forog. Tehat ez egy spin-hullam, ami egy p-hullamhoz kapcsolodott.
Ez pont olyasmi, mint amit Anderson leirt a szupravezetokkel kapcsolatban.
Es mint olvashattunk, Higgs onnan szedte az egesz mechanizmust. -
szabiku #1095 Na de az éppen ugyan olyan jogú állapot, mint a cirkuláris polarizációs állapot, ugyanis az meg két lineárisan polarizált állapot szuperpozíciója. Nem?? -
neyoo #1094 "Úgy gondolod, hogy lineárisan polarizált foton nincs?"
Nem en gondolom ezt, hanem nincs. Ezt irja a wiki, ezt mondjak az osszes youtube eloadason / lecture ezt irja az osszes konyv. A linearisan polarizalt foton a ket allapot szuperpoziciojaban van.
Roviden ket iranyba forog egyszerre egy idoben. -
szabiku #1093 neyoo írta: "Szoval a vektor potencial komponense nezhet a menetiranyba"
Ez nem lehet. A négyes hullámszám vektor négyzete a vákuumban terjedő fényre nulla. Így csak transzverzális polarizáció lehetséges, longitudinális nem.
Utoljára szerkesztette: szabiku, 2017.11.30. 20:22:42 -
neyoo #1092 Csak nvidia gyorsitot hasznalok haha -
neyoo #1091 Az elteres:
megvaltoztak az amplitudok:
return fi*0.5;
return A*0.866;
es elfordult a vektorpotencial forgasi tengelye
float rotang=acos(0.5/0.866);
vec3 A=Xdir*sin(phase);
A+=Tdir*cos(phase)*cos(rotang);
A+=Ydir*cos(phase)*sin(rotang);
A forgatasi szog az igazan erdekes.
http://hyperphysics.phy-astr.gsu.edu/hbase/spin.html
sqrt(3)/2 = 0.866
Hogyan jon ide az elektron spinje?
Es hol a sqrt(2) amit a fotonrol szolo wikin olvasunk?
Nos van itt egy haromszog a haladasi iranyba. Az oldalainak hossza
Hbar *sqrt(1)
Hbar *sqrt(2)
Hbar *sqrt(3)
reduced Planck constant
en.wikipedia.org/wiki/Planck_constant
-
szabiku #1090 neyoo írta: "Azert nem irok ekezettel, mert lelassit. Csak ugy mondom..."
Hát igen fel vagy pörögve, az már feltűnt...
Nem szedsz netán valami gyorsítót? -
neyoo #1089 es a megoldas
<!doctype html>
<html>
<body>
<canvas width = "570" height = "570" id = "my_Canvas"></canvas>
<script>
/*============= Creating a canvas ======================*/
var canvas = document.getElementById('my_Canvas');
gl = canvas.getContext('experimental-webgl');
/*========== Defining and storing the geometry ==========*/
var scl=10;
var vertices=new Array(32*32*32*2*3),i=0,j=0;
var colors=new Array(32*32*32*2*3);
for(z=0;z<32;z++)
for(y=0;y<32;y++)
for(x=0;x<32;x++)
if(x==0 || y==0 || z==0)
{
vertices[i++]=x/scl;
vertices[i++]=y/scl;
vertices[i++]=z/scl;
vertices[i++]=x/scl;
vertices[i++]=y/scl;
vertices[i++]=z/scl;
colors[j++]=0;
colors[j++]=0;
colors[j++]=0;
colors[j++]=1;
colors[j++]=1;
colors[j++]=1;
}
// Create and store data into vertex buffer
var vertex_buffer = gl.createBuffer ();
gl.bindBuffer(gl.ARRAY_BUFFER, vertex_buffer);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW);
// Create and store data into color buffer
var color_buffer = gl.createBuffer ();
gl.bindBuffer(gl.ARRAY_BUFFER, color_buffer);
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(colors), gl.STATIC_DRAW);
/*=================== SHADERS =================== */
var vertCode = 'attribute vec3 position;'+
'uniform mat4 Pmatrix;'+
'uniform mat4 Vmatrix;'+
'uniform mat4 Mmatrix;'+
'uniform float Mtime2;'+
'uniform int Mmode;'+
'uniform vec3 Mpencolor;'+
'attribute vec3 color;'+
'varying vec3 vColor;'+
'float fncFI(float x,float y,float z){'+
' vec3 Pos=vec3(x,y,z);'+
' float dist=length(Pos);'+
' float k=3.1415926/1.0;'+
' float phase=dist*k - Mtime2;'+
' float fi=-cos(phase);'+
' return fi*0.5;'+
'}'+
'vec3 fncA(float x,float y,float z,float delta){'+
' vec3 Pos=vec3(x,y,z);'+
' float dist=length(Pos);'+
' float k=3.1415926/1.0;'+
' float phase=(dist + delta)*k -Mtime2;'+
' vec3 Tdir=normalize(Pos);'+
' vec3 Xdir=cross(Tdir,vec3(0.0,1.0,0.0));'+
' vec3 Ydir=normalize(cross(Xdir,Tdir));'+
' Xdir =normalize(cross(Tdir,Ydir));'+
' float rotang=acos(0.5/0.866);'+
' vec3 A=Xdir*sin(phase);'+
' A+=Tdir*cos(phase)*cos(rotang);'+
' A+=Ydir*cos(phase)*sin(rotang);'+
' return A*0.866;'+
'}'+
'vec3 fncEgrad(float x,float y,float z){'+
' float dx=0.001;'+
' float A=fncFI(x,y,z);'+
' float Adx=fncFI(x+dx,y,z);'+
' float Ady=fncFI(x,y+dx,z);'+
' float Adz=fncFI(x,y,z+dx);'+
' vec3 dA=(fncA(x,y,z,0.0)-fncA(x,y,z,-dx))/dx;'+
' vec3 gradFI=vec3((Adx-A)/dx,(Ady-A)/dx,(Adz-A)/dx);'+
' return -gradFI -dA;'+
'}'+
'vec3 curlA(float x,float y,float z){'+
' float dx=0.001;'+
' vec3 dAx=(fncA(x+dx,y,z,0.0) - fncA(x-dx,y,z,0.0))/(2.0*dx);'+
' vec3 dAy=(fncA(x,y+dx,z,0.0) - fncA(x,y-dx,z,0.0))/(2.0*dx);'+
' vec3 dAz=(fncA(x,y,z+dx,0.0) - fncA(x,y,z-dx,0.0))/(2.0*dx);'+
' vec3 curl=-vec3((dAz.y)-(dAy.z),'+
' (dAx.z)-(dAz.x),'+
' (dAy.x)-(dAx.y));'+
' return curl;'+
'}'+
'void main(void) { '+
' float scalef=0.07;'+
' float x=position.x;'+
' float y=position.y;'+
' float z=position.z;'+
' vec3 dir;'+
' if(Mmode==1) dir=color*fncEgrad(x,y,z);'+
' if(Mmode==2) dir=color*curlA(x,y,z);'+
' if(Mmode==3) dir=color*fncA(x,y,z,0.0);'+
' gl_Position = Pmatrix*Vmatrix*Mmatrix*vec4(position+dir*scalef, 1.0);'+
' vColor=Mpencolor;'+
'}';
var fragCode = 'precision mediump float;'+
'varying vec3 vColor;'+
'void main(void) {'+
' gl_FragColor = vec4(vColor, 1.0);'+
'}';
var vertShader = gl.createShader(gl.VERTEX_SHADER);
gl.shaderSource(vertShader, vertCode);
gl.compileShader(vertShader);
var fragShader = gl.createShader(gl.FRAGMENT_SHADER);
gl.shaderSource(fragShader, fragCode);
gl.compileShader(fragShader);
var shaderprogram = gl.createProgram();
gl.attachShader(shaderprogram, vertShader);
gl.attachShader(shaderprogram, fragShader);
gl.linkProgram(shaderprogram);
/*======== Associating attributes to vertex shader =====*/
var _Pmatrix = gl.getUniformLocation(shaderprogram, "Pmatrix");
var _Vmatrix = gl.getUniformLocation(shaderprogram, "Vmatrix");
var _Mmatrix = gl.getUniformLocation(shaderprogram, "Mmatrix");
var _Mtime2 = gl.getUniformLocation(shaderprogram, "Mtime2");
var _Mpencolor = gl.getUniformLocation(shaderprogram, "Mpencolor");
var _Mmode = gl.getUniformLocation(shaderprogram, "Mmode");
gl.bindBuffer(gl.ARRAY_BUFFER, vertex_buffer);
var _position = gl.getAttribLocation(shaderprogram, "position");
gl.vertexAttribPointer(_position, 3, gl.FLOAT, false,0,0);
gl.enableVertexAttribArray(_position);
gl.bindBuffer(gl.ARRAY_BUFFER, color_buffer);
var _color = gl.getAttribLocation(shaderprogram, "color");
gl.vertexAttribPointer(_color, 3, gl.FLOAT, false,0,0) ;
gl.enableVertexAttribArray(_color);
gl.useProgram(shaderprogram);
/*==================== MATRIX ====================== */
function get_projection(angle, a, zMin, zMax) {
var ang = Math.tan((angle*.5)*Math.PI/180);//angle*.5
return [
0.5/ang, 0 , 0, 0,
0, 0.5*a/ang, 0, 0,
0, 0, -(zMax+zMin)/(zMax-zMin), -1,
0, 0, (-2*zMax*zMin)/(zMax-zMin), 0
];
}
var proj_matrix = get_projection(40, canvas.width/canvas.height, 1, 100);
var mo_matrix = [ 1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1 ];
var view_matrix = [ 1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1 ];
view_matrix[14] = view_matrix[14]-6;
/*================= Mouse events ======================*/
var AMORTIZATION = 0.95;
var drag = false;
var old_x, old_y;
var dX = 0, dY = 0;
var mouseDown = function(e) {
drag = true;
old_x = e.pageX, old_y = e.pageY;
e.preventDefault();
return false;
};
var mouseUp = function(e){
drag = false;
};
var mouseMove = function(e) {
if (!drag) return false;
dX = (e.pageX-old_x)*2*Math.PI/canvas.width,
dY = (e.pageY-old_y)*2*Math.PI/canvas.height;
THETA+= dX;
PHI+=dY;
old_x = e.pageX, old_y = e.pageY;
e.preventDefault();
};
canvas.addEventListener("mousedown", mouseDown, false);
canvas.addEventListener("mouseup", mouseUp, false);
canvas.addEventListener("mouseout", mouseUp, false);
canvas.addEventListener("mousemove", mouseMove, false);
/*=========================rotation================*/
function rotateX(m, angle) {
var c = Math.cos(angle);
var s = Math.sin(angle);
var mv1 = m[1], mv5 = m[5], mv9 = m[9];
m[1] = m[1]*c-m[2]*s;
m[5] = m[5]*c-m[6]*s;
m[9] = m[9]*c-m[10]*s;
m[2] = m[2]*c+mv1*s;
m[6] = m[6]*c+mv5*s;
m[10] = m[10]*c+mv9*s;
}
function rotateY(m, angle) {
var c = Math.cos(angle);
var s = Math.sin(angle);
var mv0 = m[0], mv4 = m[4], mv8 = m[8];
m[0] = c*m[0]+s*m[2];
m[4] = c*m[4]+s*m[6];
m[8] = c*m[8]+s*m[10];
m[2] = c*m[2]-s*mv0;
m[6] = c*m[6]-s*mv4;
m[10] = c*m[10]-s*mv8;
}
/*=================== Drawing =================== */
var THETA = 0,
PHI = 0;
var time_old = 0;
var animate = function(time) {
var dt = time-time_old;
if (!drag) {
dX *= AMORTIZATION, dY*=AMORTIZATION;
THETA+=dX, PHI+=dY;
}
//set model matrix to I4
mo_matrix[0] = 1, mo_matrix[1] = 0, mo_matrix[2] = 0, mo_matrix[3] = 0,
mo_matrix[4] = 0, mo_matrix[5] = 1, mo_matrix[6] = 0, mo_matrix[7] = 0,
mo_matrix[8] = 0, mo_matrix[9] = 0, mo_matrix[10] = 1, mo_matrix[11] = 0,
mo_matrix[12] = 0, mo_matrix[13] = 0, mo_matrix[14] = 0, mo_matrix[15] = 1;
rotateY(mo_matrix, THETA);
rotateX(mo_matrix, PHI);
time_old = time;
gl.enable(gl.DEPTH_TEST);
// gl.depthFunc(gl.LEQUAL);
gl.clearColor(0.0, 0.0, 0.0, 0.9);
gl.clearDepth(1.0);
gl.viewport(0.0, 0.0, canvas.width, canvas.height);
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
gl.uniformMatrix4fv(_Pmatrix, false, proj_matrix);
gl.uniformMatrix4fv(_Vmatrix, false, view_matrix);
gl.uniformMatrix4fv(_Mmatrix, false, mo_matrix);
gl.uniform1f(_Mtime2, time*1e-3);
gl.bindBuffer(gl.ARRAY_BUFFER, vertex_buffer);
if( 1)// 1 vs 0
{
gl.uniform3f(_Mpencolor, 0.0,0.0,1.0);//blue fncEgrad = E field
gl.uniform1i(_Mmode, 1);
gl.drawArrays(gl.LINES, 0, 32*32*2*3);
gl.uniform3f(_Mpencolor, 1.0,0.0,0.0);//red curlA = B field
gl.uniform1i(_Mmode, 2);
gl.drawArrays(gl.LINES, 0, 32*32*2*3);
}else{
gl.uniform3f(_Mpencolor, 1.0,1.0,0.0);//yellow fncA = vector potential
gl.uniform1i(_Mmode, 2);
gl.drawArrays(gl.LINES, 0, 32*32*2*3);
}
window.requestAnimationFrame(animate);
}
animate(0);
</script>
</body>
</html>