Python, 456 429 381
import turtle as t
L="fl"
R="fr"
d=L*3+R*3
b=(d+R)*3
a=[b,120,L*3+"fflflffflflfrflflfffl"+R*4+"flf",90,b+"ffrfrflffrffrfrfrflflf",120,(R*5+L*5+R+L)*5+"rrfr"+L*5+R*2+L*2+R*4+"f",72,(d+"f")*5+"rfl"+((d+"b")*5)[:-1],120]
l=t.lt
f=t.fd
b=t.bk
r=t.rt
p=input()*2-2
t.setup(.9,.9)
t.goto(-200,150)
t.clear()
for c in a[p]:exec c+"(a[p+1])"
t.getscreen().getcanvas().postscript(file="o")
Saya menerapkan penerjemah primitif dengan l r f bsebagai operator yang menggerakkan kursor penyu di sudut bentuk. Pada satu waktu, ternyata hanya satu sudut. Saya mengompresi string dengan menggunakan kembali string (semacam psuedo-subroutines), selain itu, saya tidak memeriksa untuk melihat apakah saya menggunakan jalur terbaik. Ini output ke file postscript.
Sedikit penjelasan tentang kode yang tidak di-golf:
import turtle as t
Left="fl"
Right="fr"
diamond= Left*3 + Right*3
tetrahedron=(d+R)*3 #used to be b
Impor modul penyu bawaan dan tentukan makro yang memperpendek string. Modul kura-kura menggunakan perintah untuk memindahkan 'kura-kura' di sekitar layar (yaitu maju (100), kiri (90))
netList=[
#tetrahedron
tetrahedron,120,
#cube
Left*3+"fflflffflflfrflflfffl"+Right*4+"flf",90,
#octohedron, builds off the tetrahedron
tetrahedron+"ffrfrflffrffrfrfrflflf",120,
#dodecahedron
(Right*5 + Left*5 + Right + Left)*5
+"rrfr"+
Left*5 + Right*2 + Left*2 + Right*4 + "f",72,
#icosahedron
(diamond+"f")*5 +"rfl"+((diamond+"b")*5)[:-1],120
]
Daftar ini berisi sudut dan urutan gerakan. Tetrahedron diselamatkan untuk digunakan kembali dengan oktahedren.
l=t.left
f=t.forward
b=t.back
r=t.right
Ini adalah bagian yang saya suka, itu membuat fungsi lokal karakter tunggal sehingga panggilan dapat dipersingkat dan otomatis melalui string yang telah ditentukan.
input=int(raw_input())*2-2
t.setup(.9,.9)
t.goto(-200,150)
t.clear()
Ini dimulai dengan mengambil input (antara 1 dan 5), dan mengubahnya menjadi indeks yang menunjuk ke string bentuk di netList. Penyetelan penyetelan ini menunjukkan seluruh jaring. Ini bisa ditinggalkan jika tugas itu hanya untuk menggambar mereka, tetapi karena kita membutuhkan output gambar mereka diperlukan.
for command in netList[input]:
exec command+"(netList[input+1])"
t.getscreen().getcanvas().postscript(file="o")
For loop mengambil perintah dalam string urutan perintah dan mengeksekusinya, jadi untuk string seperti "fl", ini mengeksekusi "maju (sudut); kiri (sudut);" dengan memanggil fungsi lokal yang baru dibuat. baris terakhir menampilkan file yang disebut 'o' yang dalam format format postscript menggunakan fungsi penyu.
Untuk berlari :
Salin ke file dan jalankan dari sana. Ketika Anda menjalankannya, ia akan menunggu input angka antara 1 dan 5 (saya baru saja mengubahnya sehingga ia meminta sebelum menyiapkan kura-kura). Saat Anda memasukkan angka, sebuah jendela muncul dan menarik jaring. jika Anda ingin lebih cepat, Anda dapat menambahkan t.speed(200)sebelumnya setup.
Anda dapat menyalin-menempelkannya ke dalam juru bahasa, tetapi ketika raw_input()dipanggil, ia akan menggunakan string yang Anda masukan berikutnya"t.setup(.9,.9)" sebagai ganti nomor. Jadi, jika Anda melakukan ini, salin hingga raw_input(), masukkan nomor, lalu salin tempel sisanya. Ini dimaksudkan untuk dijalankan secara keseluruhan. Atau Anda bisa menyalinnya ke suatu fungsi dan menyebutnya.
Ini adalah outputnya (dikonversi dari postscript):
Catatan: posisi ini di jendela telah berubah, tetapi bentuk keseluruhannya sama.

Ini sedikit kekuatan kasar untuk golf kode, tapi saya bosan mencoba menemukan pola yang konsisten antara bentuk.