File:Harmonic partials on strings.svg
Wikimedia Commons, 자유로운 미디어 저장소
둘러보기로 이동
검색으로 이동
![File:Harmonic partials on strings.svg](https://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Harmonic_partials_on_strings.svg/620px-Harmonic_partials_on_strings.svg.png?20080708144619)
SVG 파일의 PNG 형식의 미리보기 크기: 620 × 590 픽셀. 다른 해상도: 252 × 240 픽셀 | 504 × 480 픽셀 | 807 × 768 픽셀 | 1,076 × 1,024 픽셀 | 2,152 × 2,048 픽셀
원본 파일 (SVG 파일, 실제 크기 620 × 590 픽셀, 파일 크기: 10 KB)
파일 정보
구조화된 데이터
캡션
설명
이 파일이 나타내는 바에 대한 한 줄 설명을 추가합니다
Schwingungsknoten auf einer Saite
파일 설명
[편집]설명Harmonic 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. |
날짜 | |
출처 | Own work by uploader, based on design of bitmap image Image:Overtone.jpg |
저자 | Qef / Houtlijm |
다른 버전 | 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')
라이선스
[편집]Public domainPublic domainfalsefalse |
![]() |
이 작품은 저작자인 Qef에 의해 퍼블릭 도메인으로 공개된 작품입니다. 이 공개 선언은 전 세계적으로 유효합니다. 만약 저작권의 포기가 법률적으로 가능하지 않은 경우, |
파일 역사
날짜/시간 링크를 클릭하면 해당 시간의 파일을 볼 수 있습니다.
날짜/시간 | 섬네일 | 크기 | 사용자 | 설명 | |
---|---|---|---|---|---|
현재 | 2008년 7월 8일 (화) 14:46 | ![]() | 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 |
이 파일을 덮어쓸 수 없습니다.
이 파일을 사용하는 문서
다음 문서 5개가 이 파일을 사용하고 있습니다:
이 파일을 사용하고 있는 모든 위키의 문서 목록
다음 위키에서 이 파일을 사용하고 있습니다:
- af.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
- ar.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
- ast.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
- be-tarask.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
- be.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
- bn.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
- ca.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
- cs.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
- de.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
- de.wikibooks.org에서 이 파일을 사용하고 있는 문서 목록
- el.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
- en.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
- en.wikibooks.org에서 이 파일을 사용하고 있는 문서 목록
- es.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
- et.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
- eu.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
- fa.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
- fr.wikipedia.org에서 이 파일을 사용하고 있는 문서 목록
이 파일의 더 많은 사용 내역을 봅니다.