Excel-hancúrozás

„Kisfilm” az Excelben. Csak illusztrálunk néhány apró trükköt, a „matematikai háttér” gyermekded. körök gördülése
Bocsánat a triszkaidekafóbiásoktól: tizenhárom kör fog mozogni a kisfilmben.
A legnagyobb kör sugara 1. Ezt belülről érinti egy r sugarú kör, a sugár értéke 0 és 1 között legyen. Megadni a C2 cellában lehet. Ezt a második kört az érintési pontban belülről egy ugyanilyen arányban lekicsinyített, azaz r2 sugarú kör érint, és így tovább, egészen a tizenharmadik körig. A filmben ugyanakkora szögsebességgel elkezdenek gördülni egymásban a sorrendben eggyel nagyobb sugarú kör kerületén. A legbelső kör középpontja által leírt görbét fehér színnel rajzoljuk ki.

Javasolt menetrend:

1, Írjuk be a C2 cellába a sugarat.

2, Kattintsunk bárhol a fekete téglalap belsejében.

A piros cellákba írni nem tilos éppen, de nem is tanácsos, mert mindent szétzilálhatunk vele.
(A téglalap és a cellák színe természetesen változtatható. Ez esetben a leírás 2. pontját és az intelmet igazítsuk gondolatban az új színekhez.)
A fehér görbe alakja nem érdektelen. Minél kisebb r értéke, annál közelebb lesz alakja egy körhöz. Ez távolról sem véletlen. Ha a legnagyobb forgó kör középpontjának szöge egy adott állásban φ, és feltesszük, hogy végtelen sok kör forog egymásban, akkor a „legbelső” kör középpontja (1 – r)ε  + (1 – r)2 + (1 – r)r2ε3 +… -ben lesz, ahol ε = e. A végtelen mértani sor | r | < 1 esetén konvergens, hányadosa , összege (1 – r) ε / (1 – ).
Rögzített r paraméterre az (1 – r)z / (1 – rz) lineáris törtfüggvény (Möbius-függvény). A lineáris törtleképezés kört és egyenest körbe vagy egyenesbe visz át; ε világos módon egy egységkört ír le. Elemi aritmetikai vizsgálat megmutatja, hogy ezt a lineáris törtleképezésünk körbe viszi át, melynek

  • középpontja r / (r + 1),
  • sugara 1 / (r + 1).

(Szimmetriamegfontolással és a φ = 0, illetve φ = π választásokkal élve fejben kiszámolható.)

A konvergencia annál gyorsabb, minél kisebb r. Ez magyarázza a fehér görbe egyre nagyobb eltérését a körtől r nagyobb és nagyobb értékeire.


Azok számára, akik elvből nem töltenek le makrókat tartalmazó fájlokat, álljon itt az egyszerű felépítésű kis program. Futás közben a téglalap az ádventi hangulatnak megfelelően villogni is fog.

Sub forog()

Application.ScreenUpdating = False

ActiveSheet.ChartObjects(“Diagram 1”).Activate
ActiveChart.SeriesCollection(1).Select
ActiveChart.SetSourceData Source:=Sheets(“Munka1”).Range(“A1:B2814”)

‘Alapszínek: a körök kékek, a legbelső középpontját leíró görbe fehér.
‘Minden futtatás ezzel indul, hogy a pontok “kitisztuljanak”.
For i = 2 To 2614

ActiveChart.SeriesCollection(1).Points(i).Border.Color = RGB(0, 0, 200)

Next i

For i = 2615 To 2814

ActiveChart.SeriesCollection(1).Points(i).Border.ColorIndex = 2

Next i

‘Kitöröljük az egyes görbéket összekötő szakaszok színét.
For i = 1 To 13

ActiveChart.SeriesCollection(1).Points(201 * i + 1).Border.ColorIndex = 1

Next i

Application.ScreenUpdating = True

‘a tényleges “motor”
For i = 0 To 200

Workbooks(“kor.xls”).Sheets(“Munka1”).Cells(2, 4) = i * 3.1415926535 / 100

‘Minden pont kirajzolása előtt várunk 0 ideig.
‘(Különben csak a kezdő és a végállapot látszik.)
Application.Wait (Now + TimeValue(“0:00:00”))
ActiveChart.SetSourceData Source:=Sheets(“Munka1”).Range(“A1:B” & 2614 + i)

Next i

Windows(“kor.xls”).Activate
Cells(2, 3).Select

End Sub

Advertisements

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s