File:Bi-elliptic transfer.svg

Da testwiki.
Vai alla navigazione Vai alla ricerca
File originale (file in formato SVG, dimensioni nominali 768 × 580 pixel, dimensione del file: 4 KB)

Questo file proviene da Wikimedia Commons e può essere utilizzato da altri progetti. Di seguito viene mostrata la descrizione presente nella pagina di descrizione del file.

Dettagli

Descrizione A bi-elliptic transfer from a low circular starting orbit (dark blue), to a higher circular orbit (red). The spaceship is traveling in a counterclockwise direction during all segments of the orbital transfer as is indicated by the large blue and red arrows. When the spacecraft arrives at point 1 it performs a prograde burn to enter the first portion of the transfer orbit (blue-green segment). It then coasts until apoapsis of this transfer orbit located at point 2 where another prograde burn is performed to raise the point of periapsis until it coincides with the orbital radius of the desired orbit. The spacecraft then turns off its engine again and coasts along the yellow segment until it arrives at point 3. The maneuver is completed by performing a retrograde burn at point 3 to slow the spacecraft down and lower apoapsis until the orbit is circular again.
Data
Fonte Opera propria
Autore AndrewBuck
Altre versioni bi-elliptic_transfer_r-ratio14.svg
SVG sviluppo
InfoField
 Il codice sorgente di questo file SVG è valido.
 Questa grafica vettoriale è stata creata con Python.
Codice sorgente
InfoField

Python code

Python svgwrite code
#!/usr/bin/python3
# -*- coding: utf8 -*-

try:
    import svgwrite
except ImportError:
    print('requires svgwrite library: https://pypi.org/project/svgwrite/')
    # documentation at https://svgwrite.readthedocs.io/
    exit(1)

from math import *

# document
size = 768, 580
name = 'bi-elliptic_transfer'
doc = svgwrite.Drawing(name + '.svg', profile='full', size=size)
doc.set_desc(name, name + '''.svg
https://commons.wikimedia.org/wiki/File:''' + name + '.svg')

# background
doc.add(doc.rect(id='background', insert=(0, 0), size=size, fill='white', stroke='none'))

r1 = 109.6
r2 = 146.4
rb = 537.3

g = doc.add(doc.g(transform='translate(559.22, 290)', fill='none'))

sun = g.add(doc.g(id='sun'))
nbeam = 12
rsun, rsun2 = 8.2, 7.2
rbeam = 13.8
p = []
for i in range(nbeam):
    phi0, phi1 = 2*pi*i/nbeam, 2*pi*(i+0.5)/nbeam
    p += [[rbeam*cos(phi0), rbeam*sin(phi0)], [rsun2*cos(phi1), rsun2*sin(phi1)]]
sun.add(doc.polygon(points=p, stroke='#f89c16', stroke_width=1, fill='#dbf816'))
grad = doc.defs.add(doc.radialGradient(id='grad', center=(0.5, 0.5), r=0.5,
                                       gradientUnits="objectBoundingBox"))
grad.add_stop_color(offset=0, color='#dbf816')
grad.add_stop_color(offset=1, color='#f89c16')
sun.add(doc.circle(center=(0, 0), r=rsun, stroke='#f89c16', stroke_width=1,
    fill='url(#grad)'))

arrow_d = 'M 0.3,0 L -0.8,0.5 Q -0.5,0 -0.8,-0.5 Z'
doc.defs.add(doc.marker(id='arrow1', refX=0, refY=0, viewBox='-1 -1 2 2',
    orient='auto', markerWidth=18, markerHeight=18)).add(doc.path(
        d=arrow_d, stroke='none', fill='#0000c4'))
doc.defs.add(doc.marker(id='arrow2', refX=0, refY=0, viewBox='-1 -1 2 2',
    orient='auto', markerWidth=18, markerHeight=18)).add(doc.path(
        d=arrow_d, stroke='none', fill='#bc0d0d'))
doc.defs.add(doc.marker(id='arrow3', refX=0, refY=0, viewBox='-1 -1 2 2',
    orient='auto', markerWidth=8, markerHeight=8)).add(doc.path(
        d=arrow_d, stroke='none', fill='#197810'))
doc.defs.add(doc.marker(id='arrow4', refX=0, refY=0, viewBox='-1 -1 2 2',
    orient='auto', markerWidth=8, markerHeight=8)).add(doc.path(
        d=arrow_d, stroke='none', fill='#a42d0c'))

g.add(doc.path(d='M {0},0 A {1},{1} 0 0 0 {1},0 A {1},{1} 0 0 0 {0},0'.format(-r1, r1),
      stroke='#0000c4', stroke_width=2.5, marker_end='url(#arrow1)'))
g.add(doc.path(d='M {0},0 A {1},{1} 0 0 0 {1},0 A {1},{1} 0 0 0 {0},0'.format(-r2, r2),
      stroke='#bc0d0d', stroke_width=2.5, marker_end='url(#arrow2)'))

a1 = (r1 + rb) / 2
b1 = sqrt(a1**2 - (a1 - r1)**2)
a2 = (r2 + rb) / 2
b2 = sqrt(a2**2 - (a2 - r2)**2)

g.add(doc.path(d='M {},0 A {},{} 0 0 0 {},0'.format(-rb, a1, b1, r1),
      stroke='#00b996', stroke_width=2, stroke_dasharray='2,4'))
g.add(doc.path(d='M {},0 A {},{} 0 0 0 {},0'.format(r2, a2, b2, -rb),
      stroke='#ff991b', stroke_width=2, stroke_dasharray='2,4'))
g.add(doc.path(d='M {},0 A {},{} 0 0 0 {},0'.format(r1, a1, b1, -rb),
      stroke='#00b996', stroke_width=5))
g.add(doc.path(d='M {},0 A {},{} 0 0 0 {},0'.format(-rb, a2, b2, r2),
      stroke='#ff991b', stroke_width=5))

dv1 = sqrt(2/r1 - 1/a1) - sqrt(1/r1)
dv2 = sqrt(2/rb - 1/a2) - sqrt(2/rb - 1/a1)
dv3 = sqrt(2/r2 - 1/a2) - sqrt(1/r2)
l1 = 160

g.add(doc.line(start=(r1, 0), end=(r1, -l1),
      stroke='#197810', stroke_width=3, marker_end='url(#arrow3)'))
g.add(doc.line(start=(-rb, 0), end=(-rb, l1*dv2/dv1),
      stroke='#197810', stroke_width=3, marker_end='url(#arrow3)'))
g.add(doc.line(start=(r2, 0), end=(r2, l1*dv3/dv1),
      stroke='#a42d0c', stroke_width=3, marker_end='url(#arrow4)'))

# text
g.add(doc.text('1', font_size='48px', stroke='none', fill='black',
      text_anchor='middle', transform='translate(84, 18)',
      font_family='Bitstream Vera Sans'))
g.add(doc.text('2', font_size='48px', stroke='none', fill='black',
      text_anchor='middle', transform='translate(-508, 18)',
      font_family='Bitstream Vera Sans'))
g.add(doc.text('3', font_size='48px', stroke='none', fill='black',
      text_anchor='middle', transform='translate(181, 18)',
      font_family='Bitstream Vera Sans'))

doc.save(pretty=True)

Licenza

Io, detentore del copyright su quest'opera, dichiaro di pubblicarla con le seguenti licenze:
GNU head È permesso copiare, distribuire e/o modificare questo documento in base ai termini della GNU Free Documentation License, Versione 1.2 o successive pubblicata dalla Free Software Foundation; senza alcuna sezione non modificabile, senza testo di copertina e senza testo di quarta di copertina. Una copia della licenza è inclusa nella sezione intitolata Testo della GNU Free Documentation License.
w:it:Creative Commons
attribuzione condividi allo stesso modo
Questo file è licenziato in base ai termini delle licenze Creative Commons Attribuzione-Condividi allo stesso modo 4.0 Internazionale, 3.0 Unported, 2.5 Generico, 2.0 Generico e 1.0 Generico
Tu sei libero:
  • di condividere – di copiare, distribuire e trasmettere quest'opera
  • di modificare – di adattare l'opera
Alle seguenti condizioni:
  • attribuzione – Devi fornire i crediti appropriati, un collegamento alla licenza e indicare se sono state apportate modifiche. Puoi farlo in qualsiasi modo ragionevole, ma non in alcun modo che suggerisca che il licenziante approvi te o il tuo uso.
  • condividi allo stesso modo – Se remixi, trasformi o sviluppi il materiale, devi distribuire i tuoi contributi in base alla stessa licenza o compatibile all'originale.
Puoi scegliere la licenza che preferisci.

Didascalie

Aggiungi una brevissima spiegazione di ciò che questo file rappresenta

Elementi ritratti in questo file

raffigura

image/svg+xml

72dce82939298aef41f506b8252b348e65c89d82

4 223 byte

580 pixel

768 pixel

Cronologia del file

Fare clic su un gruppo data/ora per vedere il file come si presentava nel momento indicato.

Data/OraMiniaturaDimensioniUtenteCommento
attuale16:46, 29 mag 2020Miniatura della versione delle 16:46, 29 mag 2020768 × 580 (4 KB)wikimediacommons>Geek3computed the actual aspect ratios of the ellipses and delta-v.

La seguente pagina usa questo file: