Datei:Harmonic partials on strings.svg

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Datei:Harmonic partials on strings.svg
Größe der PNG-Vorschau dieser SVG-Datei: 620 ×ばつ 590 Pixel. Weitere aus SVG automatisch erzeugte PNG-Grafiken in verschiedenen Auflösungen: 252 ×ばつ 240 Pixel | 504 ×ばつ 480 Pixel | 807 ×ばつ 768 Pixel | 1.076 ×ばつ 1.024 Pixel | 2.152 ×ばつ 2.048 Pixel

Originaldatei (SVG-Datei, Basisgröße: 620 ×ばつ 590 Pixel, Dateigröße: 10 KB)

Diese Datei und die Informationen unter dem roten Trennstrich werden aus dem zentralen Medienarchiv Wikimedia Commons eingebunden.


Beschreibung

BeschreibungHarmonic partials on strings.svg
English: Illustration of harmonic overtones on the wave set up along a string when it is held steady in certain places, as when a guitar string is plucked while lightly held exactly half way along its length.
Datum
Quelle Own work by uploader, based on design of bitmap image Image:Overtone.jpg
Urheber Qef / Houtlijm
Andere Versionen Massive JPEG bitmap version: Image:Overtone.jpg

Source code

Created by a specially written program in the Lua programming language. To recreate the image just run the program, and it will write the SVG into a file. There are various parameters that can be adjusted at the start of the code. The sine-wave approximation using Bezier curves is derived from Bezier curve sinewave approximation (PDF) by Jim Fitzsimmons.

local MARGIN = 10
local AMPLITUDE, WAVE_WIDTH = 30, 600
local GAP_BETWEEN_WAVES = 25
local NUM_WAVES = 7
local FONT_SIZE, FONT_FUDGE = 20, 5
local WAVE_STYLE = ' stroke="#000" stroke-width="1.5" fill="none"'
local img_wd = 2 * MARGIN + WAVE_WIDTH
local img_ht = 2 * MARGIN + NUM_WAVES * AMPLITUDE * 2 +
 (NUM_WAVES - 1) * GAP_BETWEEN_WAVES
local PI = math.asin(1) * 2
local XD = PI / 12
local SQRT2 = math.sqrt(2)
local Y1 = (2 * SQRT2) / 7 - 1 / 7
local Y2 = (4 * SQRT2) / 7 - 2 / 7
local Y3 = SQRT2 / 2
local Y4 = (3 * SQRT2) / 7 + 2 / 7
function sine_wave_path (x, y, width, amp, num_half_waves)
 local xmul = width / (num_half_waves * PI)
 local xd = XD * xmul
 local path = 'M' .. coords(x, y)
 for _ = 1, num_half_waves do
 path = path .. ' C' .. coords(x + xd, y + amp * Y1)
 .. ' ' .. coords(x + 2*xd, y + amp * Y2)
 .. ' ' .. coords(x + 3*xd, y + amp * Y3)
 .. ' C' .. coords(x + 4*xd, y + amp * Y4)
 .. ' ' .. coords(x + 5*xd, y + amp)
 .. ' ' .. coords(x + 6*xd, y + amp)
 .. ' C' .. coords(x + 7*xd, y + amp)
 .. ' ' .. coords(x + 8*xd, y + amp * Y4)
 .. ' ' .. coords(x + 9*xd, y + amp * Y3)
 .. ' C' .. coords(x + 10*xd, y + amp * Y2)
 .. ' ' .. coords(x + 11*xd, y + amp * Y1)
 .. ' ' .. coords(x + 12*xd, y)
 x = x + width / num_half_waves
 amp = amp * -1 -- flip over vertically every half wave
 end
 return path
end
function coords (x, y)
 return string.format('%g,%g', x, y)
end
local fh = assert(io.open("Harmonic_partials_on_strings.svg", "wb"))
fh:write('<?xml version="1.0" encoding="UTF-8"?>\n' ..
 '<svg version="1.0" width="', img_wd, '" height="', img_ht,
 '" xmlns="http://www.w3.org/2000/svg">\n')
local y_origin = MARGIN + AMPLITUDE
local wave_labels, pick_circles = '', ''
for n = 1, NUM_WAVES do
 local amp = AMPLITUDE - (n - 1) * AMPLITUDE * 0.1
 fh:write(' <path', WAVE_STYLE, ' d="',
 sine_wave_path(MARGIN, y_origin, WAVE_WIDTH, amp, n), ' ',
 sine_wave_path(MARGIN, y_origin, WAVE_WIDTH, -amp, n),
 '"/>\n')
 if n > 1 then
 local pick_x = MARGIN + WAVE_WIDTH / n
 local pick_r = AMPLITUDE * 0.2
 pick_circles = pick_circles .. ' <circle cx="' .. pick_x ..
 '" cy="' .. y_origin + pick_r ..
 '" r="' .. pick_r .. '"/>\n'
 wave_labels = wave_labels .. ' <text x="' .. pick_x ..
 '" y="' .. y_origin - FONT_SIZE + 2 * FONT_FUDGE ..
 '">1/' .. n .. '</text>\n'
 end
 y_origin = y_origin + 2 * AMPLITUDE + GAP_BETWEEN_WAVES
end
fh:write(' <g stroke="#000" fill="#bbb">\n', pick_circles, ' </g>\n',
 ' <g font-family="Bitstream Vera Sans" font-size="', FONT_SIZE, 'px"',
 ' text-anchor="middle">\n',
 ' <text x="', MARGIN + FONT_FUDGE,
 '" y="', MARGIN + AMPLITUDE - FONT_SIZE + 2 * FONT_FUDGE,
 '">0</text>\n',
 ' <text x="', MARGIN + WAVE_WIDTH - FONT_FUDGE,
 '" y="', MARGIN + AMPLITUDE - FONT_SIZE + 2 * FONT_FUDGE,
 '">1</text>\n',
 wave_labels,
 ' </g>\n',
 '</svg>\n')

Lizenz

Public domainPublic domainfalsefalse
[画像:Public domain] Dieses Werk wurde von seinem Urheber Qef als gemeinfrei veröffentlicht. Dies gilt weltweit.

In manchen Staaten könnte dies rechtlich nicht möglich sein. Sofern dies der Fall ist:
Qef gewährt jedem das bedingungslose Recht, dieses Werk für jedweden Zweck zu nutzen, es sei denn, Bedingungen sind gesetzlich erforderlich.

Kurzbeschreibungen

Schwingungsknoten auf einer Saite

In dieser Datei abgebildete Objekte

Motiv

Datum der Gr\u00fcndung, Erstellung, Entstehung, Erbauung<\/a>"}},"text\/plain":{"de":{"":"Datum der Gr\u00fcndung, Erstellung, Entstehung, Erbauung"}}},"{\"value\":{\"time\":\"+2008年07月08日T00:00:00Z\",\"timezone\":0,\"before\":0,\"after\":0,\"precision\":11,\"calendarmodel\":\"http:\\\/\\\/www.wikidata.org\\\/entity\\\/Q1985727\"},\"type\":\"time\"}":{"text\/html":{"de":{"P571":"8. Juli 2008"}},"text\/plain":{"de":{"P571":"8. Juli 2008"}}}}" class="wbmi-entityview-statementsGroup wbmi-entityview-statementsGroup-P571 oo-ui-layout oo-ui-panelLayout oo-ui-panelLayout-framed">

Dateiversionen

Klicke auf einen Zeitpunkt, um diese Version zu laden.

Version vomVorschaubildMaßeBenutzerKommentar
aktuell15:46, 8. Jul. 2008 Vorschaubild der Version vom 15:46, 8. Jul. 2008 620 ×ばつ 590 (10 KB)Qef {{Information |Description={{en|1=Illustration of harmonic overtones on the wave set up along a string when it is held steady in certain places, as when a guitar string is plucked while lightly held exactly half way along its length. }} |Source=Own work

Die folgenden 5 Seiten verwenden diese Datei:

Globale Dateiverwendung

Die nachfolgenden anderen Wikis verwenden diese Datei:

Weitere globale Verwendungen dieser Datei anschauen.

Abgerufen von „https://de.wikipedia.org/wiki/Datei:Harmonic_partials_on_strings.svg"