DECLARE SUB symLklok0 () DECLARE SUB symLklok1 () DECLARE SUB Lklok01 () DECLARE SUB twparadox () DECLARE SUB titel () DECLARE SUB hippo () DECLARE SUB ruimtijd () DECLARE SUB BetaKeus () DECLARE SUB wereldlijnen () DECLARE SUB RTlichtlijn () DECLARE SUB symLklok () DECLARE SUB Lklok () DECLARE SUB RTassen () DECLARE SUB RTijking () DECLARE SUB RTtransf () DECLARE SUB kijkintro () DECLARE SUB Lklok10 () DECLARE SUB wacht () DECLARE SUB ruimtetijd () DECLARE SUB gedanken () DECLARE SUB kijken () DECLARE SUB menu () DECLARE SUB dilat () DECLARE SUB contra () DECLARE SUB intro () COMMON SHARED men%, rtmen%, beta, w, wx, len0, leng, tit$, klr% SCREEN 12 menu: CALL menu IF men% = 1 THEN intro IF men% = 2 THEN gedanken IF men% = 3 THEN ruimtijd IF men% = 4 THEN hippo IF men% = 5 THEN BetaKeus: wereldlijnen IF men% = 6 THEN BetaKeus IF ABS(beta) < .1 OR ABS(beta) > .9 THEN GOTO menu CALL symLklok0: symLklok1: Lklok10: Lklok01: symLklok: Lklok END IF IF men% = 7 THEN dilat: contra IF men% = 8 THEN BetaKeus IF ABS(beta) < .1 OR ABS(beta) > .9 THEN GOTO menu CALL RTlichtlijn: RTassen: RTijking: RTtransf END IF IF men% = 9 THEN kijken IF men% = 10 THEN BetaKeus IF ABS(beta) < .1 OR ABS(beta) > .9 THEN GOTO menu twparadox END IF IF men% = 0 THEN PLAY "l21o3gp21fp21ep21d" INPUT " Quit RELATY (ENTER=yes) ? ", y$ IF y$ = "" THEN PLAY "l21o3cp21cp21dp21ep21l10d.l21cl5c" END END IF END IF GOTO menu END SUB BetaKeus CLS : LOCATE 3, 15: COLOR 11 PRINT "RELATIVITY: the structure of space-time" LOCATE 5, 15: COLOR 14 PRINT "Credits: guido wuyts 1997" COLOR 11 PLAY "l21o3gp21fp21ep21d" LOCATE 8, 1 INPUT " -> velocity beta (=v/c, between +/-.1 and +/-.9, 0=END) : ", beta IF ABS(beta) < .1 OR ABS(beta) > .9 THEN EXIT SUB len0 = 30 + 20 * ABS(beta) leng = len0 * SQR(1 - beta ^ 2) w = 150 CLS WINDOW (-1.3 * w, -w)-(1.3 * w, w) PLAY "l21o3cp21cp21dp21e" END SUB SUB contra vraagklok2: CLS : LOCATE 3, 15: COLOR 11 PRINT "RELATIVITY: space-time structure" LOCATE 5, 15: COLOR 14 PRINT "Credits: guido wuyts 1997" LOCATE 7, 15: COLOR 11: PRINT "Length contraction" PRINT " and relativity of simultaneity" PRINT : PRINT : COLOR 15 PRINT "Length contraction of a moving light clock vis a vis one at rest," PRINT "both light clocks parallel with direction of motion." PRINT PRINT "The length contraction is to maintain time isotropy (equal return times)" PRINT "between differently oriented light clocks. Compare with two reference " PRINT "clocks perpendicular to direction of motion." PRINT PRINT "Bare in mind that return points 'horizontally' and 'vertically' for clock 2" PRINT "are no longer considered to be simultaneous by clock 1. But they are " PRINT "by clock 2, which in turn will attest asymmetric return points and" PRINT "length contraction for clock 1." PRINT : PRINT : COLOR 11 PLAY "l21o3gp21fp21ep21d" INPUT " -> velocity beta (=v/c, between .02 and .98, 0=END) : ", beta IF beta < .02 OR beta > .98 THEN EXIT SUB PLAY "l21o3cp21cp21dp21e" CLS tel% = 0: ttel% = 0 t0 = 0: tt0 = 0: y = 0: yy = 0: x = 0: y0 = 0: yy0 = 0: x0 = 0 u = 0: uu = 0: u0 = 0: uu0 = 0 w = 100: ww = w * SQR(1 - beta * beta) dy = 2: dx = dy 'progress light x+y clock 1, x clock 2 dxx = dy * beta 'progress pos. clock 2 dyy = dy * SQR(1 - beta * beta) 'progress light y clock 2 dt0 = dy * .5 / w: dtt0 = dyy * .5 / w: t0 = 0: tt0 = 0 'progress time WINDOW (-1.3 * w * .05, -w * .5)-(1.3 * w * 1.95, w * 1.5) y = 0 CLS : LOCATE 3, 15: COLOR 11 PRINT USING "RELATIVITY: length contraction beta .##"; beta LOCATE 28, 1: COLOR 3: PRINT "(-> SPACE...)" LOCATE 24, 15: COLOR 7: PRINT "proper return time clock 1................ : "; COLOR 11: PRINT USING "##.#"; t0 LOCATE 25, 15: COLOR 7: PRINT "proper return time ('vert.') clock 2...... : "; COLOR 10: PRINT USING "##.#"; tt0 LOCATE 27, 15: COLOR 7: PRINT "return time 'hor.' clock 2 acc. to clock 1 : "; COLOR 11: PRINT USING "##.#"; t0 LOCATE 26, 15: COLOR 7: PRINT "return time 'vert.' clock 2 acc. to clock 1: "; COLOR 11: PRINT USING "##.#"; t0 klok2: WHILE y >= 0 AND y <= w AND yy >= 0 AND yy <= w AND x + ww < w * 1.3 * 1.95 AND uu <= x + ww '''AND uu >= x GOSUB tekenklok2 y0 = y: y = y + dy 'y clock 1 x0 = x: x = x + dxx 'pos. clock 2 u0 = u: u = u + dy 'x clock 1 yy0 = yy: yy = yy + dyy 'y clock 2 uu0 = uu: uu = uu + dx 'x clock 2 t0 = t0 + dt0: tt0 = tt0 + dtt0 ' times 1, 2 t = TIMER: WHILE TIMER - t < .01: WEND WEND IF x + ww >= w * 1.3 * 1.95 THEN LINE (-1.3 * .05 * w, 0)-(1.3 * 1.95 * w, w), 0, BF '''clear ux = uu - x: x = 0: uu = x + ux END IF IF y < 0 THEN y = 0: u = 0: dy = -dy: tel% = tel% + 1: t0 = tel% LOCATE 24, 15: COLOR 7: PRINT "proper return time clock 1................ : "; COLOR 11: PRINT USING "##.#"; t0 END IF IF y > w THEN y = w: u = w: dy = -dy LOCATE 24, 15: COLOR 7: PRINT "proper return time clock 1................ : "; COLOR 11: PRINT USING "##.#"; t0 END IF IF yy < 0 THEN yy = 0: dyy = -dyy: ttel% = ttel% + 1: tt0 = ttel% uu = x: dx = -dx LOCATE 25, 15: COLOR 7: PRINT "proper return time ('vert.') clock 2...... : "; COLOR 10: PRINT USING "##.#"; tt0 LOCATE 27, 15: COLOR 7: PRINT "return time 'hor.' clock 2 acc. to clock 1 : "; COLOR 11: PRINT USING "##.#"; t0 LOCATE 26, 15: COLOR 7: PRINT "return time 'vert.' clock 2 acc. to clock 1: "; COLOR 11: PRINT USING "##.#"; t0 END IF IF yy > w THEN yy = w: dyy = -dyy LOCATE 25, 15: COLOR 7: PRINT "proper return time ('vert.') clock 2...... : "; COLOR 10: PRINT USING "##.#"; tt0 LOCATE 26, 15: COLOR 7: PRINT "return time 'vert.' clock 2 acc. to clock 1: "; COLOR 11: PRINT USING "##.#"; t0 END IF IF uu > (x + ww) THEN uu = x + ww - .1: dx = -dx LOCATE 27, 15: COLOR 7: PRINT "return time 'hor.' clock 2 acc. to clock 1 : "; COLOR 11: PRINT USING "##.#"; t0 END IF GOTO klok2 END tekenklok2: '''clear CIRCLE (0, y0), 1, 0 LINE (x0, 0)-(x0, w), 0 CIRCLE (x0, yy0), 1, 0 LINE (x0, 0)-(x0 + ww, 0), 0 CIRCLE (u0, 0), 1, 0 CIRCLE (uu0, 0), 1, 0 '''draw PSET (x0, yy0), 14 LINE (0, 0)-(0, w), 3 CIRCLE (0, y), 1, 14 LINE (x, 0)-(x, w), 2 CIRCLE (x, yy), 1, 14 LINE (0, 0)-(w, 0), 3 LINE (x, 0)-(x + ww, 0), 2 CIRCLE (u, 0), 1, 14 CIRCLE (uu, 0), 1, 14 FOR dum = 1 TO 100: NEXT a$ = INKEY$ IF a$ = " " THEN GOTO vraagklok2 END IF RETURN END SUB SUB dilat vraagklok: CLS : LOCATE 3, 15: COLOR 11 PRINT "RELATIVITY: the structure of space-time" LOCATE 5, 15: COLOR 14 PRINT "Credits: guido wuyts 1997" LOCATE 7, 15: COLOR 11: PRINT "Time dilatation" PRINT : PRINT : COLOR 15 PRINT "Time dilatation of two parallel light clocks oriented perpendicularly to their" PRINT "mutual motion. The situation seems asymmetric, with an apparent time contraction" PRINT "for the clock at rest." PRINT PRINT "Remember however, that both have a different perception of simultaneity," PRINT "so that the moving clock considers other positions of the light rays" PRINT "(yellow circlets) to be simultaneous, which restores symmetry in the end. " PRINT PRINT : PRINT : COLOR 11 PLAY "l21o3gp21fp21ep21d" INPUT " -> velocity beta (=v/c, between .02 and .98, 0=END) : ", beta IF beta < .02 OR beta > .98 THEN EXIT SUB PLAY "l21o3cp21cp21dp21e" CLS tel% = 0: ttel% = 0 y = 0: yy = 0: x = 0: y0 = 0: yy0 = 0: x0 = 0 w = 100 dy = 2 dx = dy * beta dyy = dy * SQR(1 - beta * beta) dt0 = dy * .5 / w: dtt0 = dyy * .5 / w: t0 = 0: tt0 = 0 WINDOW (-1.3 * w * .05, -w * .5)-(1.3 * w * 1.95, w * 1.5) y = 0 CLS : LOCATE 3, 15: COLOR 11 PRINT USING "RELATIVITY: time dilatation beta .##"; beta LOCATE 28, 1: COLOR 3: PRINT "(-> SPACE...)" LOCATE 24, 15: COLOR 7: PRINT "proper return time clock 1.........: "; COLOR 11: PRINT USING "##.#"; t0 LOCATE 25, 15: COLOR 7: PRINT "proper return time clock 2.........: "; COLOR 10: PRINT USING "##.#"; tt0 LOCATE 26, 15: COLOR 7: PRINT "return time clock 2 acc. to clock 1: "; COLOR 11: PRINT USING "##.#"; t0 klok: WHILE y >= 0 AND y <= w AND yy >= 0 AND yy <= w AND x < w * 1.3 * 1.95 GOSUB tekenklok y0 = y: y = y + dy x0 = x: x = x + dx yy0 = yy: yy = yy + dyy t0 = t0 + dt0: tt0 = tt0 + dtt0 t = TIMER: WHILE TIMER - t < .01: WEND WEND IF x >= w * 1.3 * 1.95 THEN LINE (-1.3 * .05 * w, 0)-(1.3 * 1.95 * w, w), 0, BF '''clear x = 0 END IF IF y < 0 THEN y = 0: dy = -dy: tel% = tel% + 1: t0 = tel% LOCATE 24, 15: COLOR 7: PRINT "proper return time clock 1.........: "; COLOR 11: PRINT USING "##.#"; t0 END IF IF y > w THEN y = w: dy = -dy LOCATE 24, 15: COLOR 7: PRINT "proper return time clock 1.........: "; COLOR 11: PRINT USING "##.#"; t0 END IF IF yy < 0 THEN yy = 0: dyy = -dyy: ttel% = ttel% + 1: tt0 = ttel% LOCATE 25, 15: COLOR 7: PRINT "proper return time clock 2.........: "; COLOR 10: PRINT USING "##.#"; tt0 LOCATE 26, 15: COLOR 7: PRINT "return time clock 2 acc. to clock 1: "; COLOR 11: PRINT USING "##.#"; t0 END IF IF yy > w THEN yy = w: dyy = -dyy LOCATE 25, 15: COLOR 7: PRINT "proper return time clock 2.........: "; COLOR 10: PRINT USING "##.#"; tt0 LOCATE 26, 15: COLOR 7: PRINT "return time clock 2 acc. to clock 1: "; COLOR 11: PRINT USING "##.#"; t0 END IF GOTO klok END tekenklok: CIRCLE (0, y0), 1, 0 LINE (x0, 0)-(x0, w), 0 CIRCLE (x0, yy0), 1, 0 PSET (x0, yy0), 14 LINE (0, 0)-(0, w), 3 CIRCLE (0, y), 1, 14 LINE (x, 0)-(x, w), 2 CIRCLE (x, yy), 1, 14 FOR dum = 1 TO 100: NEXT a$ = INKEY$ IF a$ = " " THEN GOTO vraagklok RETURN END SUB SUB gedanken CLS LOCATE 1, 15: COLOR 11: PRINT "RELATIVITY: Sound and Light 1/3" PLAY "l21o3gp21fp21ep21d" PRINT : COLOR 15 PRINT "Most of us take a persistent, because 'obvious', view of space as an entity" PRINT "out of any temporal reference, and of time as a universal parameter," PRINT "impregnating space everywhere and everywhen, but without contamination" PRINT "between both: time X means the same in all of space..." PRINT PRINT "This, while present-day understanding of physics leaves no room for stand-alone" PRINT "space and time. Maybe, you reply, but we can always decide upon a measurement," PRINT "can't we, and whether to use a clock or else a rod? You will have forgotten" PRINT "to mention which clocks and rods your clock, or rod, themselves have to rely " PRINT "upon to maintain their existence in time and space. So, here is back again our" PRINT "light clock, the messenger between events." PRINT PRINT "To clarify how this might work, let us think up a little Gedankenexperiment." PRINT "It goes like this:" PRINT PRINT "In Blindsland the infantery has recruted champion skeelers to man urban area" PRINT "squadrons equiped with a perfectionated Sonar-system. How it works: every" PRINT "pawn in the grid transmits its sonar signal and receives a noise of response." PRINT "But out of this he filters easily the coherent and strong response of his " PRINT "closest neighbours, being at equal distance to himself." wacht CLS LOCATE 1, 15: COLOR 11: PRINT "RELATIVITY: Sound and Light 2/3" PRINT : COLOR 15 PRINT "One corner of the squadron is occupied by an officer, One-Eye, who has" PRINT "retained some view. Now this fellow is capable of steering the whole squadron" PRINT "with a uniform velocity in any direction." PRINT "Indeed, as soon as any of his neighbours starts moving, the main signal of" PRINT "our pawn is slightly shattered. By instantly moving himself in the required" PRINT "direction, he manages however to restore its coherence. What happens to the" PRINT "squadron as a whole?" PRINT PRINT "Perpendicularly to the direction of motion, not much, as the symmetry of " PRINT "response is not broken (still: response dilatation!). Along the direction of " PRINT "motion however the sound signal has to traverse different distances to and fro." PRINT "Moreover the parallel and traverse responses would not coincide any longer. This" PRINT "is 'corrected' by the pawns approaching slightly each other along their motion:" PRINT "Length contraction for response isotropy!" PRINT PRINT "You will object, yes but they still observe their proper motion and may compare" PRINT "their shifted positions and response times with proper meters and clocks. " PRINT PRINT "All right. Now, put them in flying saucers, with nothing observable but ticking" PRINT "sonars and steering-joysticks. Observe by the way that the greatest speed thus" PRINT "achievable is that of sound, the sonar's carrier. You persist, yes but squadrons" PRINT "both moving and at rest still will agree on their respective deformations, as " PRINT "long as they compare 'simultaneous' measurements... Aah!" wacht CLS LOCATE 1, 15: COLOR 11: PRINT "RELATIVITY: Sound and Light 3/3" PRINT : COLOR 15 PRINT "Well. Now let us look at a 'squadron' of elementary particles, replacing" PRINT "sonar by light signals. No more reference rods and clocks. So, before starting" PRINT "measuring distance and time intervals we have to think up definitions of " PRINT "what is meant by 'simultaneous' and 'fixed points'." PRINT PRINT "We have arrived in the ultimate fabric of space-time, with light clocks" PRINT "as the ultimate clocks and rods, gauged by no others." PRINT "'Squadron' objects moving along each other agree in a new way:" PRINT "they 'see' each other deformed, and in a symmetric way. There is no telling" PRINT "which one is at rest and which one moving, and how fast." wacht END SUB SUB hippo CLS LOCATE 1, 15: COLOR 11: PRINT "RELATIVITY: a hippo-thesis 1/2" PLAY "l21o3gp21fp21ep21d" PRINT : COLOR 15 PRINT "We take a closer look here at the rather essential relationship between" PRINT "light clocks and matter. At macro-level one may confine the role of the first" PRINT "as a handy aid for far away observers to locate each other in space and time" PRINT "with the help of mirrors." PRINT PRINT "At micro-level it wouldn't work that way. For one thing, the link between" PRINT "both return points of the ultimate light clock can't be material, otherwise" PRINT "it remains to be decomposed in a subset of light clocks. So the return points" PRINT "are not linked. But that would drive them apart, as light is a carrier of" PRINT "impulse and energy and would push whatever interaction point outwards." PRINT PRINT "We could assume that such repulsive interaction is balanced off by neighbour" PRINT "clocks. But we can hardly extend our 'light squadron' infinitely for compen-" PRINT "sating its splitting apart! So we must look for external forces. These may" PRINT "be of the gravitational kind or something alike, considering a particle as" PRINT "being infested with concentrated light clock impulses, some force that" PRINT "keeps everything together." PRINT wacht CLS LOCATE 1, 15: COLOR 11: PRINT "RELATIVITY: a hippo-thesis 2/2" PRINT : COLOR 15 PRINT "In terms of our squadron: it 'sags' in spacetime under its own gravitation" PRINT "(or whatever) and thus sticks together. Compare with the well-known image of" PRINT "an orange on a membrane for explaining gravitational curvature. Such image" PRINT "helps in viewing other phenomena, like particle interaction: passing squadrons" PRINT "'steal' subsets from each other through overflow. And slit diffraction: Two " PRINT "neighbouring slits, with their channeling sag, let the squadron flow apart" PRINT "and again together." PRINT PRINT "The other problem with light clocks is their mirrors. Here again, they can't be" PRINT "material (to support light clocks, to support matter...). As parrying posts" PRINT "for light energy they wouldn't be required in view of the above. So we simply" PRINT "think them 'away'. We are thus left with a squadron without infanterists," PRINT "only with sonar systems..." PRINT PRINT "Finally, what I am suggesting is matter being EQUAL to 'squadrons' of" PRINT "light clocks. (Relativistic) mass being a trick to transport light" PRINT "impulse and energy at infra-luminal speed, thanks to the weaving" PRINT "technique of light rays flashing to and fro." PRINT PRINT "Would that be such a 'horse's thought? (Flemish for: stupid idea)" wacht END SUB SUB intro CLS : LOCATE 1, 15: COLOR 11: PRINT "RELATIVITY: geometry 1/3" PLAY "l21o3gp21fp21ep21d" PRINT : COLOR 15 PRINT "Relativity often is poorly understood, being developed along algebraic rather" PRINT "than geometrical lines. The latter yet seem to me an essential base for a" PRINT "theory of space. So here we try reformulating it that way." PRINT PRINT "The basic axioms of geometrical relativity describe the behaviour of 'light " PRINT "clocks'. A light clock may be defined as a light ray flashing to and fro between" PRINT "two fixed points. To be more precise, do not read: if it is fixed points, then" PRINT "we have a light clock, but rather: fixed points are return points of light " PRINT "clocks. And a light clock will be a light clock if it keeps in pace with" PRINT "any other (proven) light clock. " PRINT PRINT "The last remark comes to recognising light clocks as periodic phenomena," PRINT "like other clocks. The difference is that light clocks 'monitor' other clocks," PRINT "but are themselves monitored by no other phenomenon. So they are the ultimate" PRINT "clocks, children of light and its transmission behaviour, and masters of" PRINT "material behaviour. This way, the apparent deformation of matter in motion " PRINT "vis a vis matter at rest becomes clear." PRINT PRINT "Ironically, the development of the theory was to be triggered by the famous" PRINT "Michelson-Morley experiment, which in the 'light' of the above may be" PRINT "reformulated as an attempt to 'trap' light clocks for non-clockwise features." PRINT PRINT "As we now know light clocks, let us look at the basic hypotheses for the " PRINT "relativity of uniform linear motion." wacht CLS CLS : LOCATE 1, 15: COLOR 11: PRINT "RELATIVITY: geometry 2/3" PRINT : COLOR 15 PRINT "1. Perpendicularly to the direction of motion, light clock (and equally," PRINT "material) lengths remain unchanged." PRINT "Hence, time dilatation: for a given observer, light in a moving light clock" PRINT "has to cover a longer path than in a light clock at rest." PRINT "" PRINT "2. Time is isotropic, ie: equal light clocks are defined as having equal " PRINT "return time." PRINT "This is the only criterion to define equality of time and, for that matter, " PRINT "space intervals in the case of different orientations." PRINT "Hence length contraction: the paths of light along the direction of motion" PRINT "and traverse to it are different; the criterion is not: equal 'distance', but: " PRINT "equal light clock return time." PRINT PRINT "By applying 2. to observers mutually in motion (each may consider himself at " PRINT "rest) one deduces relativity of simultaneity. Each light clock 'defines' the" PRINT "return time 'to' as HALF the return time 'fro'. But moving observers see each " PRINT "other's light clocks as being asymmetric, return points there do not halve the " PRINT "total return time." PRINT PRINT "Finally, constant light speed is a matter of course. All observers agree that" PRINT "equal light clocks (and rod lengths) are defined by equal return times. So" PRINT "light speed, being twice the (equal) rod length divided by (equal) clock " PRINT "return time, has to be constant." wacht CLS CLS : LOCATE 1, 15: COLOR 11: PRINT "RELATIVITY: geometry 3/3" PRINT : COLOR 15 PRINT "Measuring and watching: confusion about observation" PRINT PRINT "Many a treatise on relativity confuses now and again both notions of " PRINT "observation. Length contraction is a measuring result. The object 'seen' " PRINT "instantly depends in addition on the light paths from its different parts till" PRINT "the observer. So the object of instant observation differs from the object " PRINT "of measurement, which is a rather abstract affair (as observers do not agree" PRINT "on simultaneity of measurement...)" PRINT PRINT "That's why one item in this program emphasises on the subject of distinction" PRINT "between measuring and watching, in the case of a simple, uniform, unidimensional" PRINT "motion. Hopefully it helps you to 'relativise' correctly..." PRINT : PRINT COLOR 7 PRINT "Measuring and watching formulas, for who is interested:" PRINT PRINT "Given : Proper length L0; measured velocity beta=v/c" PRINT "Measured length : L=L0*SQR(1-beta*beta)" PRINT "Watch lengths : approach=L/(1-beta) ; regression=L/(1+beta)" PRINT "Watch speeds : approach=beta/(1-beta); regression=beta/(1+beta)" PRINT PRINT "Note that watch length at approach features dilatation (not contraction);" PRINT "also, that watch speed at approach exceeds light speed for beta > .5 ," PRINT "whereas at regression it never reaches half the light speed!" wacht END SUB SUB kijken dy = 2 opnieuw: CLS CALL BetaKeus: IF ABS(beta) < .1 OR ABS(beta) > .9 THEN EXIT SUB CLS : kijkintro: CLS LOCATE 3, 15: COLOR 11: PRINT "RELATIVITY: measuring ain't watching" LOCATE 5, 29: COLOR 7: PRINT "(case of uniform motion)" LOCATE 9, 1: COLOR 3: PRINT " *** (x,ct) - spacetime " LOCATE 11, 1: COLOR 7: PRINT " *** x - axis" LOCATE 13, 1: COLOR 14: PRINT " *** observer, and object with proper length L0" LOCATE 15, 1: COLOR 10: PRINT " *** moving object as measured (rod trail length L)" LOCATE 17, 1: COLOR 15: PRINT " *** light trails of instantaneous perception" LOCATE 19, 1: COLOR 12: PRINT " *** moving object as seen (watch trail lengths L- and L+)" LOCATE 22, 1: COLOR 11 PLAY "l21o3gp21fp21ep21d" beta = ABS(beta) PRINT USING " -> velocity beta (=v/c) : #.##"; beta PRINT INPUT " -> Proper length L0 (0 to 100)................... : ", len0 IF len0 < 0 OR len0 > 100 THEN PLAY "l12o4d": EXIT SUB COLOR 15: PRINT " Trail: 1= light trail" COLOR 12: PRINT " 2= watch trail" COLOR 10: PRINT " 3= rod trail" COLOR 15: PRINT " 0= no trail" COLOR 11: LOCATE CSRLIN - 3, 52 INPUT " -> TRAIL: ", spoor% IF spoor% <> 1 AND spoor% <> 2 AND spoor% <> 3 THEN spoor% = 0 leng = len0 * SQR(1 - beta ^ 2) t0 = 1.5 * leng / beta: t1 = 2.5 * leng / beta w = 150: wx = -w * .87: ww = wx - 5: www = wx + 5 yend = t1: IF yend < w THEN yend = w CLS WINDOW (-1.3 * w, -w)-(1.3 * w, w) COLOR 10: PRINT "Measuring..." PRINT COLOR 12: PRINT "Watching...." x10 = 0: y10 = 0: x20 = 0: y20 = 0: yw0 = 0 y = -w * .8 '''y<0 = 'Left' = approach WHILE y < 0 - dy yw = y + dy: y = yw xm = yw * beta x1 = xm / (1 - beta): y1 = yw / (1 - beta) x2 = x1 - leng / (1 - beta): y2 = y1 - leng / (1 - beta) GOSUB links: GOSUB assen t = TIMER: WHILE TIMER - t < .01: WEND WEND 'y>=0 LINE (x20, y20)-(x10, y10), 0: LINE -(0, yw0), 0 PSET (x20, y20), 10: PSET (x10, y10), 10 ''' 'Midway' = passing by WHILE y < leng / beta - dy yw = y + dy: y = yw xm = beta * yw IF ABS(y1) > w THEN GOTO verder GOSUB midden: GOSUB assen t = TIMER: WHILE TIMER - t < .01: WEND WEND 'y>=leng/beta = 'Right' = regression LINE (x20, y20)-(0, yw0), 0: LINE -(x10, y10), 0 PSET (x20, y20), 10: PSET (x10, y10), 10 WHILE y < yend - dy yw = y + dy: y = yw xm = beta * yw x1 = xm / (1 + beta): y1 = x1 / beta x2 = x1 - leng / (1 + beta): y2 = y1 + leng / (1 + beta) IF ABS(y1) > w THEN GOTO verder GOSUB rechts: GOSUB assen t = TIMER: WHILE TIMER - t < .01: WEND WEND verder: links = leng / (1 - beta) LINE (0, ww)-(-links, ww - 6), 6, B '''looking 'left' info: LOCATE 1, 1 COLOR 11: PRINT " Lengths:" COLOR 14: PRINT USING "proper length ###"; len0 COLOR 10: PRINT USING "rod length ###"; leng COLOR 6: PRINT USING "watch approach ######"; leng / (1 - beta) COLOR 12: PRINT USING "watch regression ###"; leng / (1 + beta) PRINT COLOR 11: PRINT " Velocities:" COLOR 10: PRINT USING "motion .##"; beta COLOR 6: PRINT USING "watch approach ###.##"; beta / (1 - beta) COLOR 12: PRINT USING "watch regression .##"; beta / (1 + beta) PRINT wacht GOTO opnieuw EXIT SUB links: '''clear CIRCLE (0, yw0), 2, 0 LINE (x20, y20)-(x10, y10), 0: LINE -(0, yw0), 0 LINE (x20, yw0)-(x10, yw0), 0: LINE -(0, yw0), 0 LINE (x20, ww)-(x10, ww - 6), 0, B LINE (xm0, yw0)-(xm0 - leng, yw0), 0 '''measurement LINE (xm0 - leng, www)-(xm0, www + 6), 0, B '''measured '''draw CIRCLE (0, yw), 2, 14 '''observer LINE (xm, yw)-(xm - leng, yw), 2 '''measurement LINE (x2, y2)-(x1, y1), 15: LINE -(0, yw), 7 '''watch trail light LINE (x2, yw)-(x1, yw), 12 '''watch trail instant LINE (x2, ww)-(x1, ww - 6), 12, B LINE (xm - leng, www)-(xm, www + 6), 10, B '''measured '''trail IF spoor% = 1 AND y20 > www THEN LINE (x20, y20)-(x10, y10), 7 IF spoor% = 2 THEN LINE (x20, yw0)-(x10, yw0), 6 IF spoor% = 3 THEN LINE (xm0, yw0)-(xm0 - leng, yw0), 2 PSET (x20, y20), 10: PSET (x10, y10), 10 PSET (xm0, yw0), 10: PSET (xm0 - leng, yw0), 10 PSET (x20, yw0), 12: PSET (x10, yw0), 12 x10 = x1: y10 = y1: x20 = x2: y20 = y2: yw0 = yw: xm0 = xm RETURN midden: x2 = (xm - leng) / (1 - beta): y2 = (-leng + yw) / (1 - beta) x1 = xm / (1 + beta): y1 = x1 / beta '''clear CIRCLE (0, yw0), 2, 0 LINE (x20, yw0)-(x10, yw0), 0 LINE (x20, y20)-(0, yw0), 0: LINE -(x10, y10), 0 LINE (x20, ww)-(x10, ww - 6), 0, B LINE (xm0, yw0)-(xm0 - leng, yw0), 0 '''measurement LINE (xm0 - leng, www)-(xm0, www + 6), 0, B '''measured LINE (xm0, www - 3)-(xm0, www + 3), 0 '''draw CIRCLE (0, yw), 2, 14 LINE (xm, yw)-(xm - leng, yw), 2 '''meting LINE (x2, y2)-(0, yw), 15: LINE -(x1, y1), 15 LINE (x2, yw)-(x1, yw), 12 LINE (x2, ww)-(x1, ww - 6), 12, B LINE (xm - leng, www)-(xm, www + 6), 10, B '''measured '''trail IF spoor% = 1 THEN LINE (x20, y20)-(0, yw0), 7: LINE -(x10, y10), 7 IF spoor% = 2 THEN LINE (x20, yw0)-(x10, yw0), 6 IF spoor% = 3 THEN LINE (xm0, yw0)-(xm0 - leng, yw0), 2 PSET (x20, y20), 10: PSET (x10, y10), 10 PSET (xm0, yw0), 10: PSET (xm0 - leng, yw0), 10 PSET (x20, yw0), 12: PSET (x10, yw0), 12 x10 = x1: y10 = y1: x20 = x2: y20 = y2: yw0 = yw: xm0 = xm RETURN rechts: '''clear CIRCLE (0, yw0), 2, 0 LINE (x10, y10)-(x20, y20), 0: LINE -(0, yw0), 0 LINE (0, yw0)-(x20, yw0), 0: LINE -(x10, yw0), 0 LINE (x20, ww)-(x10, ww - 6), 0, B LINE (xm0, yw0)-(xm0 - leng, yw0), 0 '''measurement LINE (xm0 - leng, www)-(xm0, www + 6), 0, B '''measured LINE (xm0, www - 3)-(xm0, www + 3), 0, B '''draw CIRCLE (0, yw), 2, 14 LINE (xm, yw)-(xm - leng, yw), 2 '''measurement LINE (x1, y1)-(x2, y2), 15: LINE -(0, yw), 7 LINE (x2, yw)-(x1, yw), 12 LINE (x2, ww)-(x1, ww - 6), 12, B LINE (xm - leng, www)-(xm, www + 6), 10, B '''measured '''trail IF spoor% = 1 AND y20 < w THEN LINE (x10, y10)-(x20, y20), 7 IF spoor% = 2 THEN LINE (x20, yw0)-(x10, yw0), 6 IF spoor% = 3 THEN LINE (xm0, yw0)-(xm0 - leng, yw0), 2 PSET (x20, y20), 10: PSET (x10, y10), 10 PSET (xm0, yw0), 10: PSET (xm0 - leng, yw0), 10 PSET (x20, yw0), 12: PSET (x10, yw0), 12 x10 = x1: y10 = y1: x20 = x2: y20 = y2: yw0 = yw: xm0 = xm RETURN assen: LINE (-w * 1.3, 0)-(w * 1.3, 0), 3 '''x LINE (0, -w * .8)-(0, w), 3 '''ct LINE (len0, -3)-(len0, 3), 14: LINE (-3, len0)-(3, len0), 14 '''len0 ; 0 LINE (-len0, -3)-(-len0, 3), 14 '''-len0 LINE (-w * 1.3, wx)-(-len0, wx), 7: LINE (0, wx)-(w * 1.3, wx), 7 '''x LINE (len0, wx - 3)-(len0, wx + 3), 14 '''len0 LINE (-len0, wx - 3)-(0, wx + 3), 14, B '''proper length CIRCLE (0, wx), 2, 14 '''observer COLOR 15 LOCATE 1, 37: PRINT "ct" LOCATE 17, 76: PRINT "x" LOCATE 28, 76: PRINT "x" COLOR 10: LOCATE 19, 74: PRINT USING "####"; xm COLOR 12: LOCATE 20, 72: PRINT USING "######"; x1 COLOR 14: LOCATE 2, 35: PRINT USING "####"; yw RETURN END SUB SUB kijkintro '''spaces of instantaneous perception '''at rest CLS COLOR 11 LOCATE 1, 37: PRINT "ct" LOCATE 17, 76: PRINT "x" klr% = 12: tit$ = "Space as seen by xt ": CALL titel FOR y = -w TO w * .8 STEP 3 CIRCLE (0, y - 3), 2, 0: LINE -(0, y), 11 '''clear LINE (-w * 1.3, y - 3)-(w * 1.3, y - 3), 0 LINE (-w * 1.3, y - 3 - w * 1.3)-(0, y - 3), 0: LINE -(w * 1.3, y - 3 - w * 1.3), 0 LINE (-w * 1.3, 0)-(w * 1.3, 0), 11 '''x-axis LINE (0, -w)-(0, w), 11 '''ct-axis LINE (-w * 1.3, y - w * 1.3)-(0, y), 14: LINE -(w * 1.3, y - w * 1.3), 14 '''light lines LINE (-w * 1.3, y)-(w * 1.3, y), 12 '''watch lines CIRCLE (0, y), 2, 7 t = TIMER: WHILE TIMER - t < .01: WEND NEXT y LINE (-w * 1.3, 0)-(w * 1.3, 0), 11 LINE (0, -w)-(0, w), 11 wacht '''in motion CLS klr% = 12: tit$ = "Space as seen by x't' ": CALL titel COLOR 10 ppos% = 37 + 28 * beta: IF ppos% < 0 THEN ppos% = 0 LOCATE 2, ppos%: PRINT "ct'" ppos% = 14 - beta * 15: IF beta < 0 THEN ppos% = ppos% + 2 IF ppos% < 1 THEN ppos% = 1 IF ppos% > 28 THEN ppos% = 28 LOCATE ppos%, 76: PRINT "x'" y0 = -w FOR y = y0 TO w * .8 STEP 3 '''light lines LINE (-1.3 * w, (1 - beta * beta) * y0 - beta * 1.3 * w)-(1.3 * w, (1 - beta * beta) * y0 + beta * 1.3 * w), 0'''clear CIRCLE (beta * y0, y0), 2, 0: LINE -(beta * y, y), 10 LINE (beta * y0 - 2 * w, y0 - 2 * w)-(beta * y0, y0), 0: LINE -(beta * y0 + 2 * w, y0 - 2 * w), 0 LINE (-1.3 * w, beta * -1.3 * w)-(1.3 * w, beta * 1.3 * w), 10 '''x'-axis LINE (-w * beta, -w)-(w * beta, w), 10 '''ct'-axis LINE (beta * y - 2 * w, y - 2 * w)-(beta * y, y), 14: LINE -(beta * y + 2 * w, y - 2 * w), 14 '''light lines LINE (-1.3 * w, (1 - beta * beta) * y - beta * 1.3 * w)-(1.3 * w, (1 - beta * beta) * y + beta * 1.3 * w), 12'''watch lines CIRCLE (beta * y, y), 2, 10 y0 = y t = TIMER: WHILE TIMER - t < .01: WEND NEXT y LINE (-1.3 * w, beta * -1.3 * w)-(1.3 * w, beta * 1.3 * w), 10 LINE (-w * beta, -w)-(w * beta, w), 10 klr% = 12: tit$ = "Space as seen by x't' ": CALL titel COLOR 10 ppos% = 37 + 28 * beta: IF ppos% < 0 THEN ppos% = 0 LOCATE 2, ppos%: PRINT "ct'" ppos% = 14 - beta * 15: IF beta < 0 THEN ppos% = ppos% + 2 IF ppos% < 1 THEN ppos% = 1 IF ppos% > 28 THEN ppos% = 28 LOCATE ppos%, 76: PRINT "x'" wacht END SUB SUB Lklok '''Interpreting light clocks '''moving light clock by observer 'at rest' CLS LINE (-w * beta, -w)-(w * beta, w), 2 '''light clocks LINE (-w * beta - leng, -w)-(w * beta - leng, w), 7 LINE (-w * beta + leng, -w)-(w * beta + leng, w), 7 y0 = leng / (1 - beta) + leng / (1 + beta) FOR i = -2 TO 1 y = i * y0 LINE (y * beta, y)-(y * beta + leng / (1 - beta), y + leng / (1 - beta)), 14 LINE -((y + y0) * beta, y + y0), 14 LINE -(y * beta - leng / (1 + beta), y + leng / (1 + beta)), 14 LINE -(y * beta, y), 14 NEXT i y0 = 2 * len0 '''space axes dy = y0 / 50 'klr% = 3: tit$ = "Lichtkl. bew. gezien dr. rust": CALL titel klr% = 3: tit$ = "Moving l.cl. as seen at rest ": CALL titel FOR i = -2 TO 1 FOR k = 0 TO 49 IF k MOD 25 = 0 THEN y = i * y0 + k * dy x = y * beta LINE (x - leng, y)-(x + leng, y), 8 END IF NEXT k NEXT i LINE (-w * 1.3, 0)-(w * 1.3, 0), 11 LINE (0, -w)-(0, w), 11 COLOR 11 LOCATE 1, 37: PRINT "ct" LOCATE 17, 76: PRINT "x" wacht '''light clock at rest seen by moving observer CLS LINE (-w * 1.3, 0)-(w * 1.3, 0), 3 '''x-axis LINE (0, -w)-(0, w), 3 '''ct-axis LINE (-len0, -w)-(-len0, w), 7: LINE (len0, -w)-(len0, w), 7 '''light clocks y0 = 2 * len0 FOR i = -2 TO 2 y = i * y0 LINE (0, y)-(len0, y + len0), 14: LINE -(0, y + y0), 14 LINE -(-len0, y + len0), 14: LINE -(0, y), 14 NEXT i y0 = leng / (1 - beta) + leng / (1 + beta) '''space axes dy = y0 / 50 'klr% = 2: tit$ = "Lichtkl. rust gezien dr. bew.": CALL titel klr% = 2: tit$ = "L.cl. at rest as seen in motion": CALL titel FOR i = -2 TO 1 FOR k = 0 TO 49 IF k MOD 25 = 0 THEN y = i * y0 + k * dy LINE (-len0, y + beta * (-len0 - beta * y))-(len0, y + beta * (len0 - beta * y)), 8 END IF NEXT k NEXT i LINE (-1.3 * w, beta * -1.3 * w)-(1.3 * w, beta * 1.3 * w), 10 LINE (-w * beta, -w)-(w * beta, w), 10 COLOR 10 ppos% = 37 + 28 * beta: IF ppos% < 0 THEN ppos% = 0 LOCATE 2, ppos%: PRINT "ct'" ppos% = 14 - beta * 15: IF beta < 0 THEN ppos% = ppos% + 2 IF ppos% < 1 THEN ppos% = 1 IF ppos% > 28 THEN ppos% = 28 LOCATE ppos%, 76: PRINT "x'" wacht END SUB SUB Lklok01 CLS g = 1 / SQR(1 - beta * beta) rr = 1: ww = -.4 * w: cc = 10 'klr% = 11: tit$ = "Lichtkl. rust gezien dr. bew.": CALL titel klr% = 2: tit$ = "L.cl. at rest as seen in motion": CALL titel IF beta > 0 THEN xi1 = leng / ((1 + beta) * g): yi1 = xi1 xi2 = -leng / ((1 - beta) * g): yi2 = -xi2 ELSE xi1 = -len0 / ((1 - beta) * g): yi1 = -xi1 xi2 = len0 / ((1 + beta) * g): yi2 = xi2 END IF FOR yi = 0 TO yi1 STEP (yi1 + yi2) * .01 '''clear previous LINE (xx, yy)-(xxx, yyy), 0 CIRCLE (x, ww), rr, 0: CIRCLE (xx, ww), rr, 0: CIRCLE (xxx, ww), rr, 0'''x-axis '''redraw LINE (-w, ww)-(w, ww), 8 LINE (-w, 0)-(w, 0), 8: LINE (0, 0)-(0, w), 8 LINE (0, 0)-(x, y), 2: LINE (0, 0)-(0, y0), 3 PSET (xx, yy), 14: PSET (xxx, yyy), 14 '''calculate xi = -beta * yi IF beta > 0 THEN xxi = -yi: xxxi = yi ELSE xxxi = -yi: xxi = yi END IF y0 = g * (yi + beta * xi) ''' x0=g(xi+beta xi) = 0 : along y-axis x = g * (0 + beta * yi): y = g * (yi + 0) ''' along yi = y'-axis xx = g * (xxi + beta * yi): yy = g * (yi + beta * xxi) xxx = g * (xxxi + beta * yi): yyy = g * (yi + beta * xxxi) '''draw LINE (xx, yy)-(xxx, yyy), 8 CIRCLE (x, ww), rr, cc '''x-axis CIRCLE (xx, ww), rr, 14: CIRCLE (xxx, ww), rr, 14 CIRCLE (0, ww), rr, 11 ''' x-axis t = TIMER: WHILE TIMER - t < .01: WEND NEXT yi '''clear last ' '''retain x1 = x: y1 = y xxx1 = xxx: yyy1 = yyy FOR yi = yi1 TO yi2 STEP (yi1 + yi2) * .01 '''clear previous LINE (xx, yy)-(xxx, yyy), 0 CIRCLE (x, ww), rr, 0: CIRCLE (xx, ww), rr, 0: CIRCLE (xxx, ww), rr, 0'''x-axis '''redraw LINE (-w, ww)-(w, ww), 8 LINE (-w, 0)-(w, 0), 8: LINE (0, 0)-(0, w), 8 LINE (0, 0)-(x, y), 2: LINE (0, 0)-(0, y0), 3 PSET (xx, yy), 14: PSET (xxx, yyy), 14 '''calculate xi = -beta * yi IF -beta > 0 THEN xxi = xi1 + (yi - yi1) xxxi = yi ELSE xxi = xi1 - (yi - yi1) xxxi = -yi END IF y0 = g * (yi + beta * xi) ''' x0=g(xi+beta xi) = 0 : along y-axis x = g * (0 + beta * yi): y = g * (yi + 0) ''' along yi = y'-axis xx = g * (xxi + beta * yi): yy = g * (yi + beta * xxi) xxx = g * (xxxi + beta * yi): yyy = g * (yi + beta * xxxi) '''draw LINE (xx, yy)-(xxx, yyy), 8 CIRCLE (x, ww), rr, cc '''x-axis CIRCLE (xx, ww), rr, 14: CIRCLE (xxx, ww), rr, 14 CIRCLE (0, ww), rr, 11 ''' x-axis t = TIMER: WHILE TIMER - t < .01: WEND NEXT yi LINE (-w, y - 1)-(w, y - 1), 0 '''clear last '''retain x2 = x: y2 = y xxx2 = xxx: yyy2 = yyy FOR yi = yi2 TO yi1 + yi2 STEP (yi1 + yi2) * .01 '''clear previous LINE (xx, yy)-(xxx, yyy), 0 CIRCLE (x, ww), rr, 0: CIRCLE (xx, ww), rr, 0: CIRCLE (xxx, ww), rr, 0'''x-axis CIRCLE (0, y0), rr, 0 CIRCLE (x, y), rr, 0 LINE (xx, y - 1)-(xxx, y - 1), 0 '''redraw LINE (-w, ww)-(w, ww), 8 LINE (-w, 0)-(w, 0), 8: LINE (0, 0)-(0, w), 8 LINE (0, 0)-(x, y), 2: LINE (0, 0)-(0, y0), 3 PSET (xx, yy), 14: PSET (xxx, yyy), 14 '''calculate xi = -beta * yi IF -beta > 0 THEN xxi = xi1 + (yi - yi1) xxxi = xi2 - (yi - yi2) ELSE xxi = xi1 - (yi - yi1) xxxi = xi2 + (yi - yi2) END IF y0 = g * (yi + beta * xi) ''' x0=g(xi+beta xi) = 0 : along y-axis x = g * (0 + beta * yi): y = g * (yi + 0) ''' along yi = y'-axis xx = g * (xxi + beta * yi): yy = g * (yi + beta * xxi) xxx = g * (xxxi + beta * yi): yyy = g * (yi + beta * xxxi) '''draw LINE (xx, yy)-(xxx, yyy), 8 PSET (xx, yy), 14: PSET (xxx, yyy), 14 CIRCLE (x, ww), rr, cc '''x-axis CIRCLE (xx, ww), rr, 14: CIRCLE (xxx, ww), rr, 14 CIRCLE (0, ww), rr, 11 ''' x-axis t = TIMER: WHILE TIMER - t < .01: WEND NEXT yi '''redraw CIRCLE (xx, ww), rr, 0: CIRCLE (xxx, ww), rr, 0'''x-axis CIRCLE (0, y0), rr, 0 CIRCLE (x, y), rr, 0 LINE (-w, ww)-(w, ww), 8 LINE (-w, 0)-(w, 0), 8: LINE (0, 0)-(0, w), 8 LINE (x1, y1)-(xxx1, yyy1), 8: LINE (x2, y2)-(xxx2, yyy2), 8 LINE (0, y0)-(x, y), 8 LINE (0, 0)-(0, y0), 11 LINE (-w, -x * w / y)-(w, x * w / y), 2: LINE (0, 0)-(x, y), 10 LINE (-w, ww)-(w, ww), 2 CIRCLE (0, ww), rr, 11 ''' x-axis CIRCLE (x, ww), rr, cc: COLOR 10 ppos% = 37 + 28 * beta: IF ppos% < 0 THEN ppos% = 0 LOCATE 2, ppos%: PRINT "ct'" ppos% = 14 - beta * 15: IF beta < 0 THEN ppos% = ppos% + 2 IF ppos% < 1 THEN ppos% = 1 IF ppos% > 28 THEN ppos% = 28 LOCATE ppos%, 76: PRINT "x'" LOCATE 21, 76: PRINT "x'" wacht END SUB SUB Lklok10 CLS rr = 1: ww = -.4 * w: cc = 10 'klr% = 10: tit$ = "Lichtkl. bew. gezien dr. rust": CALL titel klr% = 3: tit$ = "Moving l.cl. as seen at rest ": CALL titel IF beta > 0 THEN x1 = -leng / (1 + beta): y1 = -x1 x2 = leng / (1 - beta): y2 = x2 ELSE x1 = leng / (1 - beta): y1 = x1 x2 = -leng / (1 + beta): y2 = -x2 END IF FOR y = 0 TO y1 '''clear previous LINE (-w, y - 1)-(w, y - 1), 0 CIRCLE (x, ww), rr, 0: CIRCLE (xx, ww), rr, 0: CIRCLE (xxx, ww), rr, 0'''x-as CIRCLE (0, y - 1), rr, 0 CIRCLE (x, y - 1), rr, 0 LINE (xx, y - 1)-(xxx, y - 1), 0 '''redraw PSET (xx, y - 1), 14: PSET (xxx, y - 1), 14 LINE (-w, ww)-(w, ww), 8 LINE (-w, 0)-(w, 0), 8: LINE (0, 0)-(0, w), 8 '''calculate x = beta * y xx = -y xxx = y '''draw LINE (xx, y)-(xxx, y), 8 LINE (0, 0)-(0, y), 3: LINE (0, 0)-(x, y), 2 PSET (xx, y), 14: PSET (xxx, y), 14 CIRCLE (x, ww), rr, cc '''x-axis CIRCLE (xx, ww), rr, 14: CIRCLE (xxx, ww), rr, 14 CIRCLE (0, ww), rr, 11 ''' x-axis t = TIMER: WHILE TIMER - t < .01: WEND NEXT y '''clear last LINE (-w, y - 1)-(w, y - 1), 0 CIRCLE (0, y - 1), rr, 0 CIRCLE (x, y - 1), rr, 0 LINE (xx, y - 1)-(xxx, y - 1), 0 FOR y = y1 TO y2 '''clear previous LINE (-w, y - 1)-(w, y - 1), 0 CIRCLE (x, ww), rr, 0: CIRCLE (xx, ww), rr, 0: CIRCLE (xxx, ww), rr, 0'''x-axis LINE (xx, y - 1)-(xxx, y - 1), 0 '''redraw PSET (x, y - 1), cc PSET (xx, y - 1), 14: PSET (xxx, y - 1), 14 LINE (-w, ww)-(w, ww), 8 LINE (-w, 0)-(w, 0), 8: LINE (0, 0)-(0, w), 8 '''calculate x = beta * y IF beta > 0 THEN xx = x1 + (y - y1) xxx = y ELSE xx = x1 - (y - y1) xxx = -y END IF '''draw LINE (xx, y)-(xxx, y), 8 PSET (xx, y), 14: PSET (xxx, y), 14 LINE (0, 0)-(0, y), 3: LINE (0, 0)-(x, y), 2 CIRCLE (x, ww), rr, cc '''x-axis CIRCLE (xx, ww), rr, 14: CIRCLE (xxx, ww), rr, 14 CIRCLE (0, ww), rr, 11 ''' x-axis t = TIMER: WHILE TIMER - t < .01: WEND NEXT y LINE (-w, y - 1)-(w, y - 1), 0 ''' clear last CIRCLE (0, y - 1), rr, 0 LINE (xx, y - 1)-(xxx, y - 1), 0 FOR y = y2 TO y1 + y2 '''clear previous LINE (-w, y - 1)-(w, y - 1), 0 CIRCLE (x, ww), rr, 0: CIRCLE (xx, ww), rr, 0: CIRCLE (xxx, ww), rr, 0'''x-axis LINE (xx, y - 1)-(xxx, y - 1), 0 '''redraw LINE (-w, ww)-(w, ww), 8 LINE (-w, 0)-(w, 0), 8: LINE (0, 0)-(0, w), 8 PSET (x, y - 1), cc PSET (xx, y - 1), 14: PSET (xxx, y - 1), 14 '''calculate x = beta * y IF beta > 0 THEN xx = x1 + (y - y1) xxx = x2 - (y - y2) ELSE xx = x1 - (y - y1) xxx = x2 + (y - y2) END IF '''draw LINE (xx, y)-(xxx, y), 8 LINE (0, 0)-(0, y), 3: LINE (0, 0)-(x, y), 2 PSET (xx, y), 14: PSET (xxx, y), 14 CIRCLE (x, ww), rr, cc '''x-axis CIRCLE (xx, ww), rr, 14: CIRCLE (xxx, ww), rr, 14 CIRCLE (0, ww), rr, 11 ''' x-axis t = TIMER: WHILE TIMER - t < .01: WEND NEXT y '''redraw CIRCLE (xx, ww), rr, 0: CIRCLE (xxx, ww), rr, 0'''x-axis CIRCLE (0, y - 1), rr, 0 CIRCLE (x, y - 1), rr, 0 LINE (-w, ww)-(w, ww), 8 LINE (-w, 0)-(w, 0), 8: LINE (0, 0)-(0, w), 8 LINE (x1, y1)-(0, y1), 8: LINE (x2, y2)-(0, y2), 8 LINE (0, y1 + y2)-(x, y1 + y2), 8 LINE (-w, 0)-(w, 0), 3: LINE (0, 0)-(0, y - 1), 11 LINE (-w, ww)-(w, ww), 3 LINE (0, 0)-(x, y - 1), 10 CIRCLE (0, ww), rr, 11 ''' x-axis CIRCLE (x, ww), rr, cc: COLOR 11 LOCATE 2, 37: PRINT "ct" LOCATE 15, 76: PRINT "x" LOCATE 21, 76: PRINT "x" wacht END SUB SUB menu CLS CLS : LOCATE 3, 15: COLOR 11 PRINT "RELATIVITY: the structure of space-time" LOCATE 5, 15: COLOR 14 PRINT "Credits: guido wuyts 1997" LOCATE 7, 1: COLOR 11 PRINT " >>> Plain text:" PRINT : COLOR 15 PRINT " 1 = Relativity geometrically revisited" PRINT " 2 = Gedankenexperiment with Sonar" PRINT " 3 = space and time for Space-Time " PRINT " 4 = hippo-thesis or horse's thoughts?" PRINT : COLOR 11 PRINT " >>> Graffix:" PRINT : COLOR 15 PRINT " 5 = world lines: space and time" PRINT " 6 = light clocks and simultaneity" PRINT " 7 = length contraction and time dilatation" PRINT " 8 = the structure of space-time" PRINT " 9 = measuring ain't watching" PRINT " 10= twin paradox" PRINT : COLOR 11 PRINT " >>> End:" PRINT : COLOR 15 PRINT " 0 or ENTER" PRINT COLOR 11 PLAY "l21o3ep21ep21fp21g" INPUT " -> CHOICE: ", men% END SUB SUB RTassen '''spacetime as a fabric of space and time axes ''' 'rest' CLS FOR x = -w * 1.3 TO w * 1.3 STEP 3 LINE (x, -w)-(x, w), 7: LINE (-w * 1.3, x)-(w * 1.3, x), 7 NEXT x LINE (-1.3 * w, 0)-(1.3 * w, 0), 11: LINE (0, -w)-(0, w), 11 COLOR 11 LOCATE 1, 37: PRINT "ct" LOCATE 17, 76: PRINT "x" 'klr% = 15: tit$ = "R-T als weefsel x/ct lijnen ": CALL titel klr% = 15: tit$ = "Sp-T as fabric of x/ct lines ": CALL titel wacht ''' in motion LOCATE 1, 1: COLOR 0: PRINT " " '''clear COLOR 0 LOCATE 1, 37: PRINT "ct" LOCATE 17, 76: PRINT "x" FOR x = -w * 1.3 TO w * 1.3 STEP 3 LINE (x, -w)-(x, w), 8: LINE (-w * 1.3, x)-(w * 1.3, x), 8 NEXT x FOR x = -w * 1.3 TO w * 1.3 STEP 3 LINE (x + beta * -w, -w)-(x + beta * w, w), 2 LINE (-1.3 * w, x + beta * 1.3 * -w)-(1.3 * w, x + beta * 1.3 * w), 2 NEXT x LINE (-1.3 * w, beta * 1.3 * -w)-(1.3 * w, beta * 1.3 * w), 10 LINE (-w * beta, -w)-(w * beta, w), 10 COLOR 10 ppos% = 37 + 28 * beta: IF ppos% < 0 THEN ppos% = 0 LOCATE 2, ppos%: PRINT "ct'" ppos% = 14 - beta * 15: IF beta < 0 THEN ppos% = ppos% + 2 IF ppos% < 1 THEN ppos% = 1 IF ppos% > 28 THEN ppos% = 28 LOCATE ppos%, 76: PRINT "x'" klr% = 10: tit$ = "Sp-T as fabric of x'/ct' lines": CALL titel wacht END SUB SUB RTijking '''gauging spacetime: length and time units CLS klr% = 10: tit$ = "Gauging spacetime: units ": CALL titel LOCATE 17, 52: COLOR 10: PRINT "x' = 1" LOCATE 9, 38: PRINT "ct' = 1" LINE (-w * 1.3, 0)-(w * 1.3, 0), 7 '''x-axis LINE (0, -w)-(0, w), 7 '''ct-axis x0 = 30: y0 = x0 '''units system at rest db = .01 FOR b = -.9 TO .9 STEP db '''clear LINE (0, 0)-(yy, xx), 0 LINE (0, 0)-(xx, yy), 0 PSET (yy, xx), 10: PSET (xx, yy), 10 '''unit hyperbolas LOCATE 1, 70: COLOR 10: PRINT USING "v/c = #.##"; b y2 = y0 / SQR(1 - b * b): x2 = b * y2 '''time axis b x1 = y2: y1 = x2 '''space axis b LINE (0, 0)-(x1, y1), 2 '''units b LINE (0, 0)-(x2, y2), 2 xx = x2: yy = y2 t = TIMER: WHILE TIMER - t < .05: WEND NEXT b LINE (0, 0)-(yy, xx), 0 '''clear last LINE (0, 0)-(xx, yy), 0 wacht LOCATE 17, 52: COLOR 0: PRINT "x' = 1" '''clear LOCATE 9, 38: PRINT "ct' = 1" klr% = 15: tit$ = "Units x,t and x',t'(beta) ": CALL titel LOCATE 1, 70: COLOR 10: PRINT USING "v/c = #.##"; beta LINE (-w * 1.3, 0)-(w * 1.3, 0), 7 '''x-axis system at rest LINE (0, -w)-(0, w), 7 '''ct-axis "" LINE (0, 0)-(x0, 0), 15: LINE (0, 0)-(0, y0), 15 '''units system at rest COLOR 15 LOCATE 1, 37: PRINT "ct" LOCATE 17, 76: PRINT "x" b = beta: xb = x0 * SQR(1 - b * b) '''for b=beta: LINE (-1.3 * w, b * -1.3 * w)-(1.3 * w, b * 1.3 * w), 2 '''x'-axis LINE (-w * b, -w)-(w * b, w), 2 '''ct'-axis y2 = y0 / SQR(1 - b * b): x2 = b * y2 '''unit time axis x1 = y2: y1 = x2 '''unit space axis LINE (0, 0)-(x1, y1), 10 '''units LINE (0, 0)-(x2, y2), 10 COLOR 10 ppos% = 37 + 28 * beta: IF ppos% < 0 THEN ppos% = 0 LOCATE 2, ppos%: PRINT "ct'" ppos% = 14 - beta * 15: IF beta < 0 THEN ppos% = ppos% + 2 IF ppos% < 1 THEN ppos% = 1 IF ppos% > 28 THEN ppos% = 28 LOCATE ppos%, 76: PRINT "x'" wacht klr% = 11: tit$ = "World line unit x ": CALL titel LINE (x0, -w)-(x0, w), 11 CIRCLE (0, y0), 1, 15: CIRCLE (x0, 0), 1, 15 wacht klr% = 3: tit$ = "World line unit x' ": CALL titel LINE (xb - w * b, -w)-(xb + w * b, w), 3 CIRCLE (x1, y1), 1, 10: CIRCLE (x2, y2), 1, 10 wacht klr% = 13: tit$ = "Time dilatation t' in t ": CALL titel LINE (0, y2)-(x2, y2), 7 CIRCLE (0, y2), 1, 13: LINE -(0, y0), 13 wacht klr% = 11: tit$ = "Length contraction x' in x ": CALL titel CIRCLE (xb, 0), 1, 11: LINE -(x0, 0), 11 wacht klr% = 13: tit$ = "Time dilatation t in t' ": CALL titel g = 1 / SQR(1 - b * b) '''gamma LINE (0, y0)-(x2 * g, y2 * g), 7 CIRCLE (x2 * g, y2 * g), 1, 13 LINE -(x2, y2), 13 wacht klr% = 11: tit$ = "Length contraction x in x' ": CALL titel CIRCLE (x1 / g, y1 / g), 1, 11 LINE -(x1, y1), 11 wacht END SUB SUB RTlichtlijn '''spacetime as a fabric of light lines CLS FOR x = -w * 1.3 * 2 TO w * 1.3 * 2 STEP 5 '''world lines light LINE (x - w, -w)-(x + w, w), 7: LINE (x - w, w)-(x + w, -w), 7 NEXT LINE (-w, -w)-(w, w), 14: LINE (-w, w)-(w, -w), 14 klr% = 15: tit$ = "Sp-T as fabric of light lines ": CALL titel wacht END SUB SUB RTtransf '''Spacetime according to 2 observers CLS klr% = 15: tit$ = "Spacetime canonised on xt-axes ": CALL titel LINE (-w * 1.3, 0)-(w * 1.3, 0), 15 '''x-axis LINE (0, -w)-(0, w), 15 '''ct-axis LINE (-1.3 * w, beta * -1.3 * w)-(1.3 * w, beta * 1.3 * w), 10 '''x'-axis LINE (-w * beta, -w)-(w * beta, w), 10 '''ct'-axis COLOR 15 LOCATE 1, 37: PRINT "ct" LOCATE 17, 76: PRINT "x" COLOR 10 ppos% = 37 + 28 * beta: IF ppos% < 0 THEN ppos% = 0 LOCATE 2, ppos%: PRINT "ct'" ppos% = 14 - beta * 15: IF beta < 0 THEN ppos% = ppos% + 2 IF ppos% < 1 THEN ppos% = 1 IF ppos% > 28 THEN ppos% = 28 LOCATE ppos%, 76: PRINT "x'" FOR xx = len0 TO w STEP .1 '''unit hyperbolas yy = SQR(xx * xx - len0 * len0) PSET (xx, yy), 2: PSET (xx, -yy), 2 PSET (yy, xx), 2: PSET (-yy, xx), 2 NEXT xx CIRCLE (len0, 0), 1, 15: CIRCLE (0, len0), 1, 15 '''units xx = len0 / SQR(1 - beta * beta) CIRCLE (xx, beta * xx), 1, 10: CIRCLE (beta * xx, xx), 1, 10 wacht '''info wissen LOCATE 1, 1: COLOR 0: PRINT "Spacetime canonised on xt-axes " COLOR 0 LOCATE 1, 37: PRINT "ct" LOCATE 17, 76: PRINT "x" COLOR 0 ppos% = 37 + 28 * beta: IF ppos% < 0 THEN ppos% = 0 LOCATE 2, ppos%: PRINT "ct'" ppos% = 14 - beta * 15: IF beta < 0 THEN ppos% = ppos% + 2 IF ppos% < 1 THEN ppos% = 1 IF ppos% > 28 THEN ppos% = 28 LOCATE ppos%, 76: PRINT "x'" CIRCLE (len0, 0), 1, 0: CIRCLE (0, len0), 1, 0 '''units xx = len0 / SQR(1 - beta * beta) CIRCLE (xx, beta * xx), 1, 0: CIRCLE (beta * xx, xx), 1, 0 '''transition standpoint S -> standpoint S' IF beta > 0 THEN db = .01 ELSE db = -.01 FOR b = db TO beta STEP db '''clear LINE (-1.3 * w, (-b + db) * -1.3 * w)-(1.3 * w, (-b + db) * 1.3 * w), 0'''x-axis LINE (-w * (-b + db), -w)-(w * (-b + db), w), 0 '''ct-axis LINE (-1.3 * w, (beta - b + db) * -1.3 * w)-(1.3 * w, (beta - b + db) * 1.3 * w), 0'''x'-axis LINE (-w * (beta - b + db), -w)-(w * (beta - b + db), w), 0 '''ct'-axis '''draw LINE (-1.3 * w, -b * -1.3 * w)-(1.3 * w, -b * 1.3 * w), 15 '''x'-as LINE (-w * -b, -w)-(w * -b, w), 15 '''ct'-as LINE (-1.3 * w, (beta - b) * -1.3 * w)-(1.3 * w, (beta - b) * 1.3 * w), 10'''x'-axis LINE (-w * (beta - b), -w)-(w * (beta - b), w), 10 '''ct'-axis t = TIMER: WHILE TIMER - t < .05: WEND NEXT b '''clear last LINE (-1.3 * w, (-b + db) * -1.3 * w)-(1.3 * w, (-b + db) * 1.3 * w), 0'''x-axis LINE (-w * (-b + db), -w)-(w * (-b + db), w), 0 '''ct-axis LINE (-1.3 * w, (beta - b + db) * -1.3 * w)-(1.3 * w, (beta - b + db) * 1.3 * w), 0'''x'-as LINE (-w * (beta - b + db), -w)-(w * (beta - b + db), w), 0 '''ct'-as '''new situation LINE (-w * 1.3, 0)-(w * 1.3, 0), 10 '''x'-axis LINE (0, -w)-(0, w), 10 '''ct'-axis LINE (-1.3 * w, -beta * -1.3 * w)-(1.3 * w, -beta * 1.3 * w), 15 '''x-axis LINE (-w * -beta, -w)-(w * -beta, w), 15 '''ct-axis COLOR 10 LOCATE 1, 37: PRINT "ct'" LOCATE 17, 76: PRINT "x'" COLOR 15 ppos% = 37 + 28 * -b: IF ppos% < 0 THEN ppos% = 0 LOCATE 2, ppos%: PRINT "ct" ppos% = 14 + b * 15: IF -b < 0 THEN ppos% = ppos% + 2 IF ppos% < 1 THEN ppos% = 1 IF ppos% > 28 THEN ppos% = 28 LOCATE ppos%, 76: PRINT "x" FOR xx = len0 TO len0 / SQR(1 - b * b) STEP .1 '''unit hyperbolas yy = SQR(xx * xx - len0 * len0) PSET (xx, yy), 2: PSET (xx, -yy), 2 PSET (yy, xx), 2: PSET (-yy, xx), 2 NEXT xx CIRCLE (len0, 0), 1, 10: CIRCLE (0, len0), 1, 10 '''units xx = len0 / SQR(1 - b * b) CIRCLE (xx, -b * xx), 1, 15: CIRCLE (-b * xx, xx), 1, 15 klr% = 10: tit$ = "Spacetime canonised on x't'-axes": CALL titel wacht END SUB SUB ruimtijd CLS LOCATE 1, 15: COLOR 11: PRINT "RELATIVITY: space-time 1/4" PLAY "l21o3gp21fp21ep21d" PRINT : COLOR 15 PRINT "Spacetime is a multidimensional affair if we want to describe space itself " PRINT "with three, perhaps more, dimensions. But for most of Special Relativity" PRINT "we may restrict it to one dimension, containing the direction of uniform" PRINT "motion between the inertial systems concerned; and sometimes a second one" PRINT "containing a perpendicular direction. Moreover we are dealing here only with" PRINT "the geometric, kinematic, aspect, not with the dynamic, eg E=Mc2." PRINT PRINT "Motion can be followed in time one a single space axis x. It can also be " PRINT "'frozen' by letting slide every momentary appearance of the axis along another " PRINT "one. This would then be the time axis t. Together with the reference axis for " PRINT "space it generates a formal plane: timespace or spacetime. All events at a given" PRINT "place and a given moment can be mapped here as a single point: a world point." PRINT PRINT "The line linking the successive world points of a point object we call its" PRINT "world line. The time axis itself is world line of an observer in space, who" PRINT "considers himself at rest since he keeps x=0. Traditionally time and space" PRINT "axes are put perpendicularly. This is only formally: time and space are" PRINT "not more 'perpendicular' for an observer at rest than for a moving one," PRINT "whose world line (time axis) will be an oblique curve." wacht CLS LOCATE 1, 15: COLOR 11: PRINT "RELATIVITY: space-time 2/4" PRINT : COLOR 15 PRINT "Another particular set of world lines are those of light, or light lines:" PRINT "a set 'to' (to the left) and another 'fro' (to the right)." PRINT PRINT "The 'Graffix' part of the main menu develops the geometric axioms and" PRINT "features of space time. Option 5. for a start creates world lines for" PRINT "objects at rest and moving, and of light lines, as seen by our reference" PRINT "observer." PRINT PRINT "Option 6. presents light clocks, and at once symmetrical pairs, one 'left'" PRINT "and one 'right', with coinciding return points. These form the base for" PRINT "defining simultaneity, expressed by the spatial line linking symmetric" PRINT "pairs of opposite return points. Hence the relativity of simultaneity!" PRINT PRINT "Option 7. explains length contraction and time dilatation. The latter" PRINT "follows from the longer path which light has to cover in a moving" PRINT "light clock oriented perpendicularly to the movement." PRINT "The first follows from the necessity to maintain equal return times for" PRINT "equal light clocks oriented along, and perpendicular to the direction" PRINT "of motion. If this were not the case, time, which is governed by light" PRINT "clock behaviour, would run 'differently' for different orientations," PRINT "so would be anisotropic!" wacht CLS LOCATE 1, 15: COLOR 11: PRINT "RELATIVITY: space-time 3/4" PRINT : COLOR 15 PRINT "Option 8. shows how spacetime finally is generated as a fabric either of" PRINT "light lines, or of well defined space and time lines describing systems" PRINT "in motion vis a vis each other." PRINT PRINT "Then is shown gauging of units for space and time, for different observers," PRINT "in accordance with formulas for length contraction and time dilatation." PRINT "Remember, the latter follows from conservation of transversal distance," PRINT "the first from conserv. of return times of differently oriented light clocks." PRINT PRINT "Finally, it is shown how a simple transformation exchanges the axes of two" PRINT "observers, to abolish the last prejudices about the 'privileged' position" PRINT "of an observer 'at rest' or 'with orthogonal axes'." PRINT PRINT "Option 9. develops an understanding of the fundamental difference between" PRINT "observation 'by measuring' and 'by mere watching', often confused with" PRINT "each other." PRINT PRINT "'Spaces of instant observation', ie by looking around, are generated by" PRINT "light lines containing all events that are perceived at the moment the" PRINT "light ray touches the eye (see yellow lines). 'Spaces of instant perception' " PRINT "of this observation are the projections of these light line events unto the " PRINT "spatial axis containing the moment of perception (see red lines)." wacht CLS LOCATE 1, 15: COLOR 11: PRINT "RELATIVITY: space-time 4/4" PRINT : COLOR 15 PRINT "The resulting differences between measuring and watching results are then" PRINT "developed extensively." PRINT PRINT "Option 10., finally, is an illustration of the famous twin paradox." PRINT "According to this, a traveler leaving the earth to rush at slightly less" PRINT "than light speed towards a neighbouring galaxy and then return equally so," PRINT "will find his twin partner on earth back much older, if not passed away" PRINT "'times ago'." PRINT PRINT "The paradox seems to unmantle the very principle of relativity, for" PRINT "shouldn't the resulting conclusions of both twins be symmetric?" PRINT "A careful analysis of both standpoints shows this is not so. That's" PRINT "what the present option is about, albeit in a qualitative, not a" PRINT "quantitative way (the latter being used for the graphics anyway)." PRINT PRINT "Both visions then prove asymmetric: the traveler indeed has to switch " PRINT "between various inertial systems along his route. During his turnabout," PRINT "his spatial axis tilts significantly (and more so as his to and fro speed" PRINT "approaches + or -c), losing track of a whole episode of his partner's " PRINT "world line within his own temporal framework." PRINT PRINT "Wish you enjoy analysing those various 'observations'!" wacht END SUB SUB symLklok '''light clocks and spatial axes of simultaneity '''at rest CLS LINE (0, -w)-(0, w), 11 LINE (-len0, -w)-(-len0, w), 7: LINE (len0, -w)-(len0, w), 7 y0 = 2 * len0 FOR i = -2 TO 1 y = i * y0 LINE (0, y)-(len0, y + len0), 14: LINE -(0, y + y0), 14 '''light clocks LINE -(-len0, y + len0), 14: LINE -(0, y), 14 NEXT i 'klr% = 11: tit$ = "Gelijktijdigheid: rust ": CALL titel klr% = 11: tit$ = "Simultaneity: at rest ": CALL titel FOR i = -2 TO 1 '''(space axes 'at rest') FOR k = 0 TO 49 IF k MOD 25 = 0 THEN y = (i + k / 50) * y0 LINE (-len0, y)-(len0, y), 8 END IF NEXT k NEXT i LINE (-w * 1.3, 0)-(w * 1.3, 0), 11 LINE (0, -w)-(0, w), 11 COLOR 11 LOCATE 1, 37: PRINT "ct" LOCATE 17, 76: PRINT "x" wacht '''in motion CLS LINE (-w * 1.3, 0)-(w * 1.3, 0), 3 LINE (0, -w)-(0, w), 3 LINE (-w * beta, -w)-(w * beta, w), 10 '''light clocks LINE (-w * beta - leng, -w)-(w * beta - leng, w), 7 LINE (-w * beta + leng, -w)-(w * beta + leng, w), 7 y0 = leng / (1 - beta) + leng / (1 + beta) FOR i = -2 TO 1 y = i * y0 LINE (y * beta, y)-(y * beta + leng / (1 - beta), y + leng / (1 - beta)), 14 LINE -((y + y0) * beta, y + y0), 14 LINE -(y * beta - leng / (1 + beta), y + leng / (1 + beta)), 14 LINE -(y * beta, y), 14 NEXT i 'klr% = 10: tit$ = "Gelijktijdigheid: beweging ": CALL titel klr% = 10: tit$ = "Simultaneity: in motion ": CALL titel FOR i = -2 TO 1 '''spatial axes FOR k = 0 TO 49 IF k MOD 25 = 0 THEN y = (i + k / 50) * y0 llen = len0 / SQR(1 - beta * beta) LINE (-llen + beta * y, y + beta * -llen)-(llen + beta * y, y + beta * llen), 8 END IF NEXT k NEXT i LINE (-1.3 * w, beta * -1.3 * w)-(1.3 * w, beta * 1.3 * w), 10 LINE (-w * beta, -w)-(w * beta, w), 10 COLOR 10 ppos% = 37 + 28 * beta: IF ppos% < 0 THEN ppos% = 0 LOCATE 2, ppos%: PRINT "ct'" ppos% = 14 - beta * 15: IF beta < 0 THEN ppos% = ppos% + 2 IF ppos% < 1 THEN ppos% = 1 IF ppos% > 28 THEN ppos% = 28 LOCATE ppos%, 76: PRINT "x'" wacht END SUB SUB symLklok0 CLS rr = 1: ww = -.4 * w: cc = 10 x1 = -leng: y1 = -x1 x2 = leng: y2 = x2 'klr% = 11: tit$ = "Symm. lichtklok in rust ": CALL titel klr% = 11: tit$ = "Symm. light clock at rest ": CALL titel FOR y = 0 TO leng '''clear previous LINE (-w, y - 1)-(w, y - 1), 0 CIRCLE (x, ww), rr, 0: CIRCLE (xx, ww), rr, 0: CIRCLE (xxx, ww), rr, 0'''x-axis LINE (xx, y - 1)-(xxx, y - 1), 0 '''redraw PSET (xx, y - 1), 14: PSET (xxx, y - 1), 14 LINE (-w, ww)-(w, ww), 8 LINE (-w, 0)-(w, 0), 8: LINE (0, 0)-(0, w), 8 '''calculate x = beta * y xx = -y xxx = y '''draw LINE (xx, y)-(xxx, y), 8 LINE (0, 0)-(0, y), 3 LINE (0, 0)-(x, y), 2 PSET (xx, y), 14: PSET (xxx, y), 14 CIRCLE (x, ww), rr, cc '''x-axis CIRCLE (xx, ww), rr, 14: CIRCLE (xxx, ww), rr, 14 CIRCLE (0, ww), rr, 11 ''' x-as t = TIMER: WHILE TIMER - t < .01: WEND NEXT y '''clear last LINE (-w, y - 1)-(w, y - 1), 0 LINE (xx, y - 1)-(xxx, y - 1), 0 FOR y = leng TO 2 * leng '''clear previous LINE (-w, y - 1)-(w, y - 1), 0 CIRCLE (x, ww), rr, 0: CIRCLE (xx, ww), rr, 0: CIRCLE (xxx, ww), rr, 0'''x-as LINE (xx, y - 1)-(xxx, y - 1), 0 '''redraw LINE (-w, ww)-(w, ww), 8 LINE (-w, 0)-(w, 0), 8: LINE (0, 0)-(0, w), 8 PSET (xx, y - 1), 14: PSET (xxx, y - 1), 14 '''calculate x = beta * y xx = x1 + (y - y1) xxx = x2 - (y - y2) '''draw LINE (xx, y)-(xxx, y), 8 LINE (0, 0)-(0, y), 3 LINE (0, 0)-(x, y), 2 PSET (xx, y), 14: PSET (xxx, y), 14 CIRCLE (x, ww), rr, cc '''x-axis CIRCLE (xx, ww), rr, 14: CIRCLE (xxx, ww), rr, 14 CIRCLE (0, ww), rr, 11 ''' x-as t = TIMER: WHILE TIMER - t < .01: WEND NEXT y '''redraw CIRCLE (xx, ww), rr, 0: CIRCLE (xxx, ww), rr, 0'''x-as LINE (-w, ww)-(w, ww), 3 LINE (-w, 0)-(w, 0), 3: LINE (0, 0)-(0, w), 3 LINE (-y1, y1)-(0, y1), 8: LINE (y2, y2)-(0, y2), 8 LINE (0, y1 + y2)-(x, y1 + y2), 8 LINE (0, 0)-(2 * x, 2 * (y1 + y1)), 8: LINE (0, 0)-(2 * (y1 + y2), 2 * x), 8 LINE (0, 0)-(x, y1 + y2), 10 LINE (0, 0)-(0, y1 + y2), 11 CIRCLE (0, ww), rr, 11 ''' x-axis CIRCLE (x, ww), rr, 10: COLOR 11 LOCATE 1, 37: PRINT "ct" LOCATE 15, 76: PRINT "x" LOCATE 21, 76: PRINT "x" wacht END SUB SUB symLklok1 CLS rr = 1: ww = -.4 * w: cc = 10 g = 1 / SQR(1 - beta * beta) ''' xi,yi = coord moving system -> Lorentz transf for x,y xx = 0: yy = 0: xxx = 0: yyy = 0 'klr% = 10: tit$ = "Symm. lichtklok bewegend ": CALL titel klr% = 10: tit$ = "Symm. light clock in motion ": CALL titel FOR yi = 0 TO len0 '''clear previous LINE (xx, yy)-(xxx, yyy), 0 CIRCLE (x, ww), rr, 0: CIRCLE (xx, ww), rr, 0: CIRCLE (xxx, ww), rr, 0 '''redraw LINE (-w, ww)-(w, ww), 8 LINE (-w, 0)-(w, 0), 8: LINE (0, 0)-(0, w), 8 PSET (xx, yy), 14: PSET (xxx, yyy), 14 '''calculate xi = 0: xxi = -yi: xxxi = yi x = g * (xi + beta * yi): y = g * (yi + beta * xi) xx = g * (xxi + beta * yi): yy = g * (yi + beta * xxi) xxx = g * (xxxi + beta * yi): yyy = g * (yi + beta * xxxi) '''draw LINE (xx, yy)-(xxx, yyy), 8 LINE (0, 0)-(0, yi / g), 3 LINE (0, 0)-(x, y), 2 CIRCLE (0, ww), rr, 3 CIRCLE (x, ww), rr, cc CIRCLE (xx, ww), rr, 14: CIRCLE (xxx, ww), rr, 14 t = TIMER: WHILE TIMER - t < .01: WEND NEXT yi xxo = xx: yyo = yy: xxxo = xxx: yyyo = yyy '''retain FOR yi = len0 TO 2 * len0 '''clear previous LINE (xx, yy)-(xxx, yyy), 0 CIRCLE (x, ww), rr, 0: CIRCLE (xx, ww), rr, 0: CIRCLE (xxx, ww), rr, 0 '''redraw LINE (-w, 0)-(w, 0), 8: LINE (0, 0)-(0, w), 8 PSET (xx, yy), 14: PSET (xxx, yyy), 14 LINE (-w, ww)-(w, ww), 8 '''calculate xi = 0: xxi = yi - 2 * len0: xxxi = -xxi x = g * (xi + beta * yi): y = g * (yi + beta * xi) xx = g * (xxi + beta * yi): yy = g * (yi + beta * xxi) xxx = g * (xxxi + beta * yi): yyy = g * (yi + beta * xxxi) '''draw LINE (xx, yy)-(xxx, yyy), 8 LINE (0, 0)-(0, yi / g), 3 LINE (0, 0)-(x, y), 2 CIRCLE (0, ww), rr, 3 CIRCLE (x, ww), rr, cc CIRCLE (xx, ww), rr, 14: CIRCLE (xxx, ww), rr, 14 t = TIMER: WHILE TIMER - t < .01: WEND NEXT yi '''redraw CIRCLE (xx, ww), rr, 0: CIRCLE (xxx, ww), rr, 0 LINE (-w, 0)-(w, 0), 8: LINE (0, 0)-(0, w), 8 LINE (-w, ww)-(w, ww), 2 LINE (xxo, yyo)-(xxxo, yyyo), 8 LINE (0, (yi - 1) / g)-(x, y), 8 LINE (0, 0)-(x, y), 10: LINE (-w, -w * x / y)-(w, w * x / y), 2 LINE (0, 0)-(0, (yi - 1) / g), 11 CIRCLE (0, ww), rr, 11 CIRCLE (x, ww), rr, 10 COLOR 10 ppos% = 37 + 28 * beta: IF ppos% < 0 THEN ppos% = 0 LOCATE 2, ppos%: PRINT "ct'" ppos% = 14 - beta * 15: IF beta < 0 THEN ppos% = ppos% + 2 IF ppos% < 1 THEN ppos% = 1 IF ppos% > 28 THEN ppos% = 28 LOCATE ppos%, 76: PRINT "x'" LOCATE 21, 76: PRINT "x'" wacht END SUB SUB titel COLOR klr% LOCATE 1, 1 PRINT tit$ END SUB SUB twparadox '''Twin paradox y0 = w * .45 x0 = beta * y0 r = 1 WINDOW (-1.3 * w, 1.1 * w)-(1.3 * w, -.3 * w) wx = -.15 * w '''1. Standpoint of home-stayer '''**************************** CLS COLOR 2: LOCATE 15 'PRINT " De Tweelingparadox:" PRINT " Twin paradox:" PRINT : COLOR 11 'PRINT " Standpunt van de thuisblijver...": PRINT " Standpoint of homestayer..." wacht COLOR 0: LOCATE 15 PRINT " Twin paradox:" PRINT PRINT " Standpoint of homestayer..." '''Departure 'tit$ = "heenreis: beweging snelheid v " tit$ = "Going away: motion at velocity v " klr% = 10: CALL titel wacht LINE (0, 0)-(0, w), 8 FOR y = 0 TO y0 LINE (-w, y - 1)-(w, y - 1), 0 CIRCLE (x, wx), r, 0 LINE (-w, 0)-(w, 0), 7 LINE (-w, wx)-(w, wx), 3 x = beta * y LINE (-w, y)-(w, y), 3 LINE (0, 0)-(x, y), 2 LINE (0, 0)-(0, y), 11 CIRCLE (0, wx), r, 11 CIRCLE (x, wx), r, 10 t = TIMER: WHILE TIMER - t < .01: WEND NEXT y '''Return 'tit$ = "terugreis: beweging snelheid -v " tit$ = "Coming back: motion at velocity -v " klr% = 10: CALL titel wacht LINE (-w, y - 1)-(w, y - 1), 0 FOR y = y0 TO 2 * y0 LINE (-w, y - 1)-(w, y - 1), 0 CIRCLE (x, wx), r, 0 LINE (-w, 0)-(w, 0), 7 LINE (-w, wx)-(w, wx), 3 x = beta * (2 * y0 - y) LINE (-w, y)-(w, y), 3 LINE (beta * y0, y0)-(x, y), 2 LINE (0, 0)-(0, y), 11 CIRCLE (0, wx), r, 11 CIRCLE (x, wx), r, 10 t = TIMER: WHILE TIMER - t < .01: WEND NEXT y klr% = 10: 'tit$ = "Aangekomen... " tit$ = "Arrived ... " CALL titel wacht '''2. Standpoint of traveler '''************************* CLS COLOR 3: LOCATE 15 'PRINT " De Tweelingparadox:" PRINT " Twin paradox:" PRINT : COLOR 10 'PRINT " Standpunt van de reiziger...": PRINT " Standpoint of traveler..." PLAY "l21o3cp21cp21dp21e" wacht COLOR 0: LOCATE 15 PRINT " Twin paradox:" PRINT PRINT " Standpoint of traveler..." '''Departure 'tit$ = "vertrek: ogenblikkelijke acceleratie rust -> beweging snelh. v" tit$ = "Departure: instant acceleration standstill -> motion veloc. v " klr% = 10: CALL titel wacht FOR bet = 0 TO beta STEP beta / 20 LINE (-w, -yo)-(w, yo), 0 LINE (0, 0)-(yo, w), 0 yo = w * bet LINE (-w, -yo)-(w, yo), 2 LINE (0, 0)-(yo, w), 2 t = TIMER: WHILE TIMER - t < .01: WEND NEXT bet '''terminate departure LINE (-w, -yo)-(w, yo), 0 LINE (0, 0)-(yo, w), 0 yo = w * beta LINE (-w, -yo)-(w, yo), 2 LINE (0, 0)-(yo, w), 2 t = TIMER: WHILE TIMER - t < .01: WEND yy0 = yo: yo = -yo '''Going away 'tit$ = "heenreis: beweging snelheid v " tit$ = "Going away: motion velocity v " klr% = 10: CALL titel wacht LINE (0, 0)-(0, w), 8 FOR y = 0 TO y0 LINE (-w, yo)-(w, yyo), 0 LINE (0, 0)-(x0 * 2, y0 * 2), 2 CIRCLE (x, wx), r, 0 LINE (-w, 0)-(w, 0), 8 LINE (-w, wx)-(w, wx), 2 x = beta * y y1 = y * (1 - beta * beta) yo = y1 - beta * w: yyo = y1 + beta * w LINE (-w, yo)-(w, yyo), 2 LINE (0, 0)-(x, y), 10 LINE (0, 0)-(0, y1), 3 CIRCLE (0, wx), r, 11 CIRCLE (x, wx), r, 10 t = TIMER: WHILE TIMER - t < .01: WEND NEXT y yy1 = y1 + 2 * beta * beta * y0 '''Turning about... tit$ = "omkeren: ogenblikkelijke acceleratie +v -> -v " tit$ = "Turning about: instant acceleration +v -> -v " klr% = 10: CALL titel wacht FOR bet = beta TO -beta STEP -beta / 20 LINE (-w, yo)-(w, yyo), 0 LINE (x0, y0)-(xo, w), 0 y11 = y0 * (1 - bet * beta) yo = y11 - bet * w: yyo = y11 + bet * w xo = x0 + bet * (w - y0) LINE (-w, yo)-(w, yyo), 2 LINE (x0, y0)-(xo, w), 2 LINE (0, y1)-(0, y11), 13 LINE (0, 0)-(beta * y0, y0), 10 t = TIMER: WHILE TIMER - t < .05: WEND NEXT bet LINE (0, 0)-(beta * y0, y0), 10 '''terminate turning about LINE (-w, yo)-(w, yyo), 0 LINE (x0, y0)-(xo, w), 0 y11 = y0 * (1 + beta * beta) yo = y11 + beta * w: yyo = y11 - beta * w xo = x0 - beta * (w - y0) LINE (-w, yo)-(w, yyo), 2 LINE (x0, y0)-(xo, w), 2 LINE (0, y1)-(0, y11), 13 t = TIMER: WHILE TIMER - t < .05: WEND '''Coming back 'tit$ = "terugreis: beweging snelheid -v " tit$ = "Coming back: motion velocity -v " klr% = 10: CALL titel wacht FOR y = y0 TO 2 * y0 LINE (-w, yo)-(w, yyo), 0 CIRCLE (x, wx), r, 0 LINE (-w, 0)-(w, 0), 8 LINE (-w, wx)-(w, wx), 2 x = 2 * beta * y0 - beta * y y1 = y * (1 - beta * beta) + 2 * beta * beta * y0 yo = y1 + beta * w: yyo = y1 - beta * w LINE (-w, yo)-(w, yyo), 2 LINE (beta * y0, y0)-(x, y), 10 LINE (0, yy1)-(0, y1), 3 CIRCLE (0, wx), r, 11 CIRCLE (x, wx), r, 10 t = TIMER: WHILE TIMER - t < .01: WEND NEXT y '''terminate coming back LINE (-w, yo)-(w, yyo), 0 y1 = 2 * y0 yo = y1 + beta * w: yyo = y1 - beta * w LINE (-w, yo)-(w, yyo), 2 LINE (beta * y0, y0)-(0, 2 * y0), 10 LINE (0, yy1)-(0, 2 * y0), 3 '''Arrival 'tit$ = "aankomst: ogenblikkelijke acceleratie beweging -v -> rust " tit$ = "Arrival: instant acceleration motion -v -> standstill " klr% = 10: CALL titel wacht FOR bet = -beta TO 0 STEP beta / 20 LINE (-w, y1 - yo)-(w, y1 + yo), 0 LINE (0, y1)-(yo, y1 + w), 0 yo = w * bet LINE (-w, y1 - yo)-(w, y1 + yo), 2 LINE (0, y1)-(yo, y1 + w), 2 LINE (beta * y0, y0)-(0, 2 * y0), 10 LINE (0, yy1)-(0, 2 * y0), 3 t = TIMER: WHILE TIMER - t < .01: WEND NEXT bet '''terminate arrival LINE (-w, y1 - yo)-(w, y1 + yo), 0 LINE (0, y1)-(yo, y1 + w), 0 yo = 0 LINE (-w, y1 - yo)-(w, y1 + yo), 2 LINE (0, y1)-(yo, y1 + w), 2 LINE (beta * y0, y0)-(0, 2 * y0), 10 LINE (0, yy1)-(0, 2 * y0), 3 'tit$ = "eigentijd thuisblijver 'verloren' in tijdsbeschrijving reiziger" tit$ = "Proper time of homestayer 'lost' in time-system of traveler " klr% = 13: CALL titel wacht END SUB SUB wacht wacht: LOCATE 28, 1: COLOR 11: PRINT " -> SPACE" PLAY "l12o4d": SLEEP: a$ = INKEY$ IF a$ <> " " GOTO wacht LOCATE 28, 1: COLOR 11: PRINT " " END SUB SUB wereldlijnen '''motion lines and world lines IF ABS(beta) < .1 OR ABS(beta) > .9 THEN EXIT SUB r = 1 '''observer 'at rest' CLS '''axes wx = -w * .9 LINE (-w * 1.3, 0)-(w * 1.3, 0), 3 '''x-axis LINE (0, -w * .8)-(0, w), 3 '''ct-axis LINE (-w * 1.3, wx)-(w * 1.3, wx), 7 '''x line COLOR 15 LOCATE 1, 37: PRINT "ct" LOCATE 14, 76: PRINT "x" LOCATE 28, 76: PRINT "x" 'klr% = 15: tit$ = "Wereldlijn: rust ": CALL titel klr% = 15: tit$ = "World line: rest ": CALL titel CIRCLE (0, wx), r, 15 '''x-point FOR y = -w * .8 TO w STEP 3 '''world line CIRCLE (0, y - 3), r, 0: LINE -(0, y), 15 CIRCLE (0, y), r, 15 t = TIMER: WHILE TIMER - t < .01: WEND NEXT y LINE (-w * 1.3, 0)-(w * 1.3, 0), 3 '''x wacht CIRCLE (0, wx), r, 0 '''object 'in motion' 'klr% = 10: tit$ = "Wereldlijn: beweging ": CALL titel klr% = 10: tit$ = "World line: motion ": CALL titel FOR y = -w * .8 TO w STEP 3 '''world line CIRCLE ((y - 3) * beta, y - 3), r, 0: LINE -(y * beta, y), 10 CIRCLE (y * beta, y), r, 10 CIRCLE ((y - 3) * beta, wx), r, 0: LINE -(y * beta, wx), 10 '''x-point CIRCLE (y * beta, wx), r, 10 t = TIMER: WHILE TIMER - t < .01: WEND NEXT y ppos% = 37 + 28 * beta: IF ppos% < 0 THEN ppos% = 0 LOCATE 2, ppos%: PRINT "ct'" wacht CIRCLE ((y - 3) * beta, wx), r, 0 ''' light rays to 'left' and 'right' 'klr% = 14: tit$ = "Wereldlijnen: licht ": CALL titel klr% = 14: tit$ = "World lines: light ": CALL titel FOR y = -w * .8 TO w STEP 3 CIRCLE ((y - 3) * 1, y - 3), r, 0: LINE -(y * 1, y), 14 '''world lines CIRCLE (y * 1, y), r, 14 CIRCLE ((y - 3) * -1, y - 3), r, 0: LINE -(y * -1, y), 14 CIRCLE (y * -1, y), r, 14 CIRCLE ((y - 3) * 1, wx), r, 0: LINE -(y * 1, wx), 14 '''x-points CIRCLE (y * 1, wx), r, 14 CIRCLE ((y - 3) * -1, wx), r, 0: LINE -(y * -1, wx), 14 CIRCLE (y * -1, wx), r, 14 t = TIMER: WHILE TIMER - t < .01: WEND NEXT y wacht END SUB