Se ofrecen aquí unos ejemplos de ejercicios resueltos similares a los ejercicios de SVG Ficheros (2).
Queremos obtener el dibujo que se muestra a la izquierda generando y completando la página web que se muestra a la derecha:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>Ficheros (2) Ejemplo 1. SVG. Ejercicios. Python</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"
width="320" height="320" viewBox="-10 -10 320 320"
style="border: black 1px solid">
</svg>
</body>
</html>
for i in range(11):
# instrucción que dibuja una línea
Las líneas se han numerado de 0 a 10 en vez de 1 a 11 porque la variable i del bucle for toma valores de 0 a 10.
i: 0 1 2 3 4 5 6 7 8 9 10 Fórmula X: 0 30 60 90 120 150 180 210 240 270 300 --> 30*i Y: 0 0 0 0 0 0 0 0 0 0 0 --> 0
i: 0 1 2 3 4 5 6 7 8 9 10 Fórmula X: 0 30 60 90 120 150 180 210 240 270 300 --> 30*i Y: 300 300 300 300 300 300 300 300 300 300 300 --> 300
for i in range(11):
print(f' <line x1="{30*i}" y1=0 x2="{30*i}" y2="300" stroke="black" stroke-width="1" />', file=fichero)
import webbrowser
def main():
ruta = "svg-ficheros-2-ejemplo-1.html"
with open(ruta, mode="w", encoding="utf-8") as fichero:
print("<!DOCTYPE html>", file=fichero)
print('<html lang="es">', file=fichero)
print("<head>", file=fichero)
print(' <meta charset="utf-8">', file=fichero)
print(" <title>Ficheros (2) Ejemplo 1. SVG. Ejercicios. Python</title>", file=fichero)
print(' <meta name="viewport" content="width=device-width, initial-scale=1.0">', file=fichero)
print("</head>", file=fichero)
print("", file=fichero)
print("<body>", file=fichero)
print(' <svg version="1.1" xmlns="http://www.w3.org/2000/svg"', file=fichero)
print(' width="320" height="320" viewBox="-10 -10 320 320"', file=fichero)
print(' style="border: black 1px solid">', file=fichero)
for i in range(11):
print(f' <line x1="{30*i}" y1="0" x2="{30*i}" y2="300" stroke="black" '
f'stroke-width="1" />', file=fichero)
print(" </svg>", file=fichero)
print("</body>", file=fichero)
print("</html>", file=fichero)
webbrowser.open(ruta)
if __name__ == "__main__":
main()
Queremos obtener el dibujo que se muestra a la izquierda generando y completando la página web que se muestra a la derecha:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>Ficheros (2) Ejemplo 2. SVG. Ejercicios. Python</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"
width="320" height="320" viewBox="-160 -160 320 320"
style="border: black 1px solid">
</svg>
</body>
</html>
for i in range(6):
# instrucción que dibuja una línea
Las líneas se han numerado de 0 a 5 en vez de 1 a 6 porque la variable i del bucle for toma valores de 0 a 5.
i: 0 1 2 3 4 5 Fórmula X: -150 -150 -150 -150 -150 -150 --> -150 Y: -150 -90 -30 30 90 150 --> -150+60*i
i: 0 1 2 3 4 5 Fórmula X: 150 150 150 150 150 150 --> 150 Y: 150 90 30 -30 -90 -150 --> 150-60*i
for i in range(6):
print(f' <line x1="-150" y1="{-150+60*i}" x2="150" y2="{150-60*i}" stroke="black" stroke-width="1" />', file=fichero)
import webbrowser
def main():
ruta = "svg-ficheros-2-ejemplo-2.html"
with open(ruta, mode="w", encoding="utf-8") as fichero:
print("<!DOCTYPE html>", file=fichero)
print('<html lang="es">', file=fichero)
print("<head>", file=fichero)
print(' <meta charset="utf-8">', file=fichero)
print(" <title>Ficheros (2) Ejemplo 2. SVG. Ejercicios. Python</title>", file=fichero)
print(' <meta name="viewport" content="width=device-width, initial-scale=1.0">', file=fichero)
print("</head>", file=fichero)
print("", file=fichero)
print("<body>", file=fichero)
print(' <svg version="1.1" xmlns="http://www.w3.org/2000/svg"', file=fichero)
print(' width="320" height="320" viewBox="-160 -160 320 320"', file=fichero)
print(' style="border: black 1px solid">', file=fichero)
for i in range(6):
print(f' <line x1="-150" y1="{-150+60*i}" x2="150" y2="{150-60*i}" stroke="black" '
f'stroke-width="1" />', file=fichero)
print(" </svg>", file=fichero)
print("</body>", file=fichero)
print("</html>", file=fichero)
webbrowser.open(ruta)
if __name__ == "__main__":
main()
Queremos obtener el dibujo que se muestra a la izquierda generando y completando la página web que se muestra a la derecha:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>Ficheros (2) Ejemplo 3. SVG. Ejercicios. Python</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"
width="320" height="320" viewBox="-20 -20 640 640"
style="border: black 1px solid">
</svg>
</body>
</html>
for i in range(3):
# instrucción que dibuja un rectángulo
Los rectángulos se han numerado de 0 a 2 en vez de 1 a 3 porque la variable i del bucle for toma valores de 0 a 2.
i: 0 1 2 Fórmula X: 50 150 250 --> 50 + 100*i Y: 50 50 50 --> 50 Ancho: 500 300 100 --> 500 - 200*i Alto: 150 300 450 --> 150 + 150*i
for i in range(3):
print(f' <rect x="{50+100*i}" y="50" width="{500-200*i}" height="{150+150*i}" stroke="black" stroke-width="2" fill="none" />', file=fichero)
import webbrowser
def main():
ruta = "svg-ficheros-2-ejemplo-3.html"
with open(ruta, mode="w", encoding="utf-8") as fichero:
print("<!DOCTYPE html>", file=fichero)
print('<html lang="es">', file=fichero)
print("<head>", file=fichero)
print(' <meta charset="utf-8">', file=fichero)
print(" <title>Ficheros (2) Ejemplo 3. SVG. Ejercicios. Python</title>", file=fichero)
print(' <meta name="viewport" content="width=device-width, initial-scale=1.0">', file=fichero)
print("</head>", file=fichero)
print("", file=fichero)
print("<body>", file=fichero)
print(' <svg version="1.1" xmlns="http://www.w3.org/2000/svg"', file=fichero)
print(' width="320" height="320" viewBox="-20 -20 640 640"', file=fichero)
print(' style="border: black 1px solid">', file=fichero)
for i in range(3):
print(f' <rect x="{50+100*i}" y="50" width="{500-200*i}" height="{150+150*i}" '
f'stroke="black" stroke-width="2" fill="none" />', file=fichero)
print(" </svg>", file=fichero)
print("</body>", file=fichero)
print("</html>", file=fichero)
webbrowser.open(ruta)
if __name__ == "__main__":
main()
Queremos obtener el dibujo que se muestra a la izquierda generando y completando la página web que se muestra a la derecha:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>Ficheros (2) Ejemplo 4. SVG. Ejercicios. Python</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"
width="320" height="320" viewBox="-160 -160 320 320"
style="border: black 1px solid">
</svg>
</body>
</html>
for i in range(5):
# instrucción que dibuja una línea
# instrucción que dibuja otra línea
Las líneas se han numerado de 0 a 5 en vez de 1 a 6 porque la variable i del bucle for toma valores de 0 a 5.
i: 0 1 2 3 4 Fórmula X: -150 -150 -150 -150 -150 --> -150 Y: -150 -90 -30 30 90 --> -150+60*i
i: 0 1 2 3 4 Fórmula X: 150 90 30 -30 -60 --> 150-60*i Y: 150 150 150 150 150 --> 150
i: 0 1 2 3 4 Fórmula X: -150 -90 -30 30 90 --> -150+60*i Y: -150 -150 -150 -150 -150 --> -150
i: 0 1 2 3 4 Fórmula X: 150 150 150 150 150 --> 150 Y: 150 90 30 -30 -60 --> 150-60*i
for i in range(5):
print(f' <line x1="-150" y1="{-150+60*i}" x2="{150-60*i}" y2="150" stroke="black" stroke-width="1" />', file=fichero)
print(f' <line x1="{-150+60*i}" y1="-150" x2="150" y2="{150-60*i}" stroke="black" stroke-width="1" />', file=fichero)
import webbrowser
def main():
ruta = "svg-ficheros-2-ejemplo-4.html"
with open(ruta, mode="w", encoding="utf-8") as fichero:
print("<!DOCTYPE html>", file=fichero)
print('<html lang="es">', file=fichero)
print("<head>", file=fichero)
print(' <meta charset="utf-8">', file=fichero)
print(" <title>Ficheros (2) Ejemplo 4. SVG. Ejercicios. Python</title>", file=fichero)
print(' <meta name="viewport" content="width=device-width, initial-scale=1.0">', file=fichero)
print("</head>", file=fichero)
print("", file=fichero)
print("<body>", file=fichero)
print(' <svg version="1.1" xmlns="http://www.w3.org/2000/svg"', file=fichero)
print(' width="320" height="320" viewBox="-160 -160 320 320"', file=fichero)
print(' style="border: black 1px solid">', file=fichero)
for i in range(5):
print(f' <line x1="-150" y1="{-150+60*i}" x2="{150-60*i}" y2="150" '
f'stroke="black" stroke-width="1" />', file=fichero)
print(f' <line x1="{-150+60*i}" y1="-150" x2="150" y2="{150-60*i}" '
f'stroke="black" stroke-width="1" />', file=fichero)
print(" </svg>", file=fichero)
print("</body>", file=fichero)
print("</html>", file=fichero)
webbrowser.open(ruta)
if __name__ == "__main__":
main()