<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>pygame archivos - Frexus</title>
	<atom:link href="https://www.frexus.dev/tag/pygame/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.frexus.dev/tag/pygame/</link>
	<description>Generando Valor Agreado</description>
	<lastBuildDate>Fri, 10 Nov 2023 06:39:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.frexus.dev/wp-content/uploads/2024/03/cropped-Captura-de-Pantalla-2022-12-26-a-las-15.52.42-32x32.png</url>
	<title>pygame archivos - Frexus</title>
	<link>https://www.frexus.dev/tag/pygame/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">215529362</site>	<item>
		<title>Geométrica bidimensional</title>
		<link>https://www.frexus.dev/post/geometrica/</link>
					<comments>https://www.frexus.dev/post/geometrica/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Tue, 08 Aug 2023 06:21:20 +0000</pubDate>
				<category><![CDATA[post]]></category>
		<category><![CDATA[pygame]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[transformación]]></category>
		<guid isPermaLink="false">https://www.frexus.dev/?p=2224</guid>

					<description><![CDATA[<p>Las transformaciones Geométricas Bidimensional, se implementan utilizando algoritmos específicos y se aplican a cada vértice del objeto que se está transformando. Estas transformaciones son la base para la construcción de escenas y representaciones visuales en aplicaciones que involucran gráficos y diseño. A continuación se muestra un ejemplo. Requerimientos del ejemplo Código Explicación Importación de bibliotecas: Inicialización de Pygame: Configuración de la ventana: Definición de colores y punto original: Funciones de transformación: Bucle principal: Este código muestra cómo realizar las operaciones de transformación geométricas bidimensionales ( traslación, rotación y escala) en un objeto gráfico bidimensional utilizando Pygame.</p>
<p>La entrada <a href="https://www.frexus.dev/post/geometrica/">Geométrica bidimensional</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img fetchpriority="high" decoding="async" width="867" height="1300" src="https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-17820246.jpeg" alt="geometricas 2d a man in a suit standing in front of a clock" class="wp-image-2225" style="width:155px;height:auto" srcset="https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-17820246.jpeg 867w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-17820246-200x300.jpeg 200w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-17820246-683x1024.jpeg 683w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-17820246-768x1152.jpeg 768w" sizes="(max-width: 867px) 100vw, 867px" /><figcaption class="wp-element-caption">Photo by HANUMAN PHOTO STUDIO<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3d5.png" alt="🏕" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4f8.png" alt="📸" class="wp-smiley" style="height: 1em; max-height: 1em;" /> on <a href="https://www.pexels.com/photo/a-man-in-a-suit-standing-in-front-of-a-clock-17820246/">Pexels.com</a></figcaption></figure>
</div>


<p>Las transformaciones Geométricas Bidimensional, se implementan utilizando algoritmos específicos y se aplican a cada vértice del objeto que se está transformando. Estas transformaciones son la base para la construcción de escenas y representaciones visuales en aplicaciones que involucran gráficos y diseño. A continuación se muestra un ejemplo.</p>



<h2 class="wp-block-heading">Requerimientos del ejemplo</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip install pygame</pre>



<p>Código</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import pygame
import sys
import math

pygame.init()

# Configuración de la ventana
window_size = (800, 600)
screen = pygame.display.set_mode(window_size)
pygame.display.set_caption("Transformaciones Bidimensionales")

# Color
white = (255, 255, 255)


# Punto original
original_point = (100, 100)

# Función para dibujar el objeto original
def draw_original():
    pygame.draw.circle(screen, white, original_point, 20)

# Función para realizar la traslación
def translate(delta_x, delta_y):
    return original_point[0] + delta_x, original_point[1] + delta_y

# Función para realizar la rotación
def rotate(angle_degrees):
    angle_radians = math.radians(angle_degrees)
    x = original_point[0]
    y = original_point[1]
    x_prime = x * math.cos(angle_radians) - y * math.sin(angle_radians)
    y_prime = x * math.sin(angle_radians) + y * math.cos(angle_radians)
    return round(x_prime), round(y_prime)

# Función para realizar la escala
def scale(s_x, s_y):
    x = original_point[0]
    y = original_point[1]
    x_prime = x * s_x
    y_prime = y * s_y
    return round(x_prime), round(y_prime)

# Bucle principal
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # Borra la pantalla
    screen.fill((0, 0, 0))

    # Dibujar objeto original
    draw_original()

    # Traslación
    translated_point = translate(100, 50)
    pygame.draw.circle(screen, white, translated_point, 20)

    # Rotación
    rotated_point = rotate(45)
    pygame.draw.circle(screen, white, rotated_point, 20)

    # Escala
    scaled_point = scale(2, 1)
    pygame.draw.circle(screen, white, scaled_point, 20)

    # Actualiza la pantalla
    pygame.display.flip()
</pre>



<h2 class="wp-block-heading">Explicación</h2>



<p><strong>Importación de bibliotecas:</strong></p>



<ul class="wp-block-list">
<li><code>pygame</code>: Biblioteca para crear videojuegos y aplicaciones multimedia.</li>
</ul>



<ul class="wp-block-list">
<li><code>sys</code>: Proporciona acceso a algunas variables utilizadas o mantenidas por el intérprete y funciones que interactúan fuertemente con el intérprete.</li>



<li><code>math</code>: Proporciona funciones matemáticas.</li>
</ul>



<p><strong>Inicialización de Pygame:</strong></p>



<ul class="wp-block-list">
<li><code>pygame.init()</code>: Inicializa todos los módulos de pygame. Necesario antes de usar cualquier funcionalidad de Pygame.</li>
</ul>



<p><strong>Configuración de la ventana:</strong></p>



<ul class="wp-block-list">
<li>Se configura una ventana con un tamaño de 800&#215;600 píxeles y se establece el título.</li>
</ul>



<p><strong>Definición de colores y punto original:</strong></p>



<ul class="wp-block-list">
<li><code>white</code>: Color blanco definido como (255, 255, 255).</li>



<li><code>original_point</code>: Coordenadas del punto original.</li>
</ul>



<p><strong>Funciones de transformación:</strong></p>



<ul class="wp-block-list">
<li><code>draw_original()</code>: Dibuja el objeto original en el punto original.</li>



<li><code>translate(delta_x, delta_y)</code>: Realiza una traslación del punto original según los valores de desplazamiento especificados.</li>



<li><code>rotate(angle_degrees)</code>: Realiza una rotación del punto original según el ángulo especificado en grados.</li>



<li><code>scale(s_x, s_y)</code>: Realiza una escala del punto original según los factores de escala especificados.</li>
</ul>



<p><strong>Bucle principal:</strong></p>



<ul class="wp-block-list">
<li>Se crea un bucle principal que maneja eventos (por ejemplo, cerrar la ventana) y realiza las transformaciones en el objeto original, dibujándolo en la ventana.</li>
</ul>



<p>Este código muestra cómo realizar las operaciones de transformación geométricas bidimensionales ( traslación, rotación y escala) en un objeto gráfico bidimensional utilizando Pygame.</p>
<p>La entrada <a href="https://www.frexus.dev/post/geometrica/">Geométrica bidimensional</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/post/geometrica/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2224</post-id>	</item>
		<item>
		<title>Caracteres</title>
		<link>https://www.frexus.dev/post/caracteres/</link>
					<comments>https://www.frexus.dev/post/caracteres/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Mon, 07 Aug 2023 04:52:52 +0000</pubDate>
				<category><![CDATA[post]]></category>
		<category><![CDATA[caracteres]]></category>
		<category><![CDATA[Graficación]]></category>
		<category><![CDATA[pygame]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://www.frexus.dev/?p=2220</guid>

					<description><![CDATA[<p>Cada uno de los caracteres tiene una representación gráfica asociada en una fuente específica, y los programas de graficación pueden utilizar esta información para mostrar texto en una variedad de estilos y tamaños. A continuación se muestra un ejemplo donde se visualiza un texto. Requerimientos del ejemplo Se debe tener instalada la librería pygame para ello se hace desde la terminal con la siguiente instrucción: Código Explación El código crea una ventana, muestra los caracteres &#8220;Hola, Mundo!&#8221; en ella y actualiza continuamente la ventana hasta que el usuario la cierra.</p>
<p>La entrada <a href="https://www.frexus.dev/post/caracteres/">Caracteres</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="1880" height="1212" src="https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-2255441.jpeg" alt="caracteres illuminated qoute board" class="wp-image-2221" style="aspect-ratio:1.551155115511551;width:324px;height:auto" srcset="https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-2255441.jpeg 1880w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-2255441-300x193.jpeg 300w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-2255441-1024x660.jpeg 1024w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-2255441-768x495.jpeg 768w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-2255441-1536x990.jpeg 1536w" sizes="(max-width: 1880px) 100vw, 1880px" /><figcaption class="wp-element-caption">Photo by Alexas Fotos on <a href="https://www.pexels.com/photo/illuminated-qoute-board-2255441/">Pexels.com</a></figcaption></figure>
</div>


<p>Cada uno de los caracteres tiene una representación gráfica asociada en una fuente específica, y los programas de graficación pueden utilizar esta información para mostrar texto en una variedad de estilos y tamaños. A continuación se muestra un ejemplo donde se visualiza un texto.</p>



<h2 class="wp-block-heading">Requerimientos del ejemplo</h2>



<p>Se debe tener instalada la librería pygame para ello se hace desde la terminal con la siguiente instrucción:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip install pygame</pre>



<h2 class="wp-block-heading">Código</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import pygame
import sys

pygame.init()

# Configuración de la ventana
window_size = (800, 600)
screen = pygame.display.set_mode(window_size)
pygame.display.set_caption("Ejemplo de Caracteres")

# Configuración del texto
font = pygame.font.Font(None, 36)  # Fuente y tamaño
text = font.render("Hola, Mundo!", True, (255, 255, 255))  # Texto y color

# Bucle principal
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # Borra la pantalla
    screen.fill((0, 0, 0))

    # Dibuja el texto en la pantalla
    screen.blit(text, (300, 250))

    # Actualiza la pantalla
    pygame.display.flip()
</pre>



<h2 class="wp-block-heading">Explación</h2>



<ol class="wp-block-list">
<li><strong>Inicialización de Pygame:</strong> <code>pygame.init()</code> Inicia el motor Pygame. Debe llamarse antes de cualquier otro comando de Pygame.</li>



<li><strong>Configuración de la ventana:</strong> 
<ul class="wp-block-list">
<li><code>window_size = (800, 600)</code> </li>



<li><code>screen = pygame.display.set_mode(window_size) </code></li>



<li><code>pygame.display.set_caption("Ejemplo de Caracteres")</code></li>



<li><code>window_size</code>: Define el tamaño de la ventana.</li>



<li><code>screen</code>: Crea una ventana con el tamaño especificado.</li>



<li><code>pygame.display.set_caption("Ejemplo de Caracteres")</code>: Establece el título de la ventana.</li>
</ul>
</li>



<li><strong>Configuración del texto:</strong>
<ul class="wp-block-list">
<li><code>font = pygame.font.Font(None, 36)</code></li>



<li><code>text = font.render("Hola, Mundo!", True, (255, 255, 255))</code></li>



<li><code>font</code>: Crea un objeto de fuente con el tamaño de 36 píxeles.</li>



<li><code>text</code>: Renderiza el texto &#8220;Hola, Mundo!&#8221; utilizando la fuente. El tercer parámetro <code>(255, 255, 255)</code> es el color del texto (blanco).</li>
</ul>
</li>



<li><strong>Ciclo principal:</strong> nicia un bucle que escucha eventos. Si el evento es de tipo <code>QUIT</code> (por ejemplo, el usuario cierra la ventana), el programa se cierra.
<ul class="wp-block-list">
<li><code>while True:</code>
<ul class="wp-block-list">
<li><code>for event in pygame.event.get():</code>
<ul class="wp-block-list">
<li><code>if event.type == pygame.QUIT:</code>
<ul class="wp-block-list">
<li><code>pygame.quit()</code></li>



<li><code>sys.exit()</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>



<li><strong>Dibujar en la pantalla:</strong>
<ul class="wp-block-list">
<li><code>screen.fill((0, 0, 0))</code> </li>



<li><code>screen.blit(text, (300, 250))</code></li>



<li><code>screen.fill((0, 0, 0))</code>: Rellena la pantalla con un color negro.</li>



<li><code>screen.blit(text, (300, 250))</code>: Coloca el texto en la pantalla en la posición (300, 250).</li>
</ul>
</li>



<li><strong>Actualizar la pantalla:</strong>
<ul class="wp-block-list">
<li><code>pygame.display.flip()</code></li>



<li>Actualiza la pantalla para que se reflejen los cambios realizados.</li>
</ul>
</li>
</ol>



<p>El código crea una ventana, muestra los caracteres  &#8220;Hola, Mundo!&#8221; en ella y actualiza continuamente la ventana hasta que el usuario la cierra.</p>
<p>La entrada <a href="https://www.frexus.dev/post/caracteres/">Caracteres</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/post/caracteres/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2220</post-id>	</item>
		<item>
		<title>Llenado de área</title>
		<link>https://www.frexus.dev/post/llenado-de-area/</link>
					<comments>https://www.frexus.dev/post/llenado-de-area/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Sun, 06 Aug 2023 16:59:58 +0000</pubDate>
				<category><![CDATA[post]]></category>
		<category><![CDATA[llenado área]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[pygame]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://www.frexus.dev/?p=2206</guid>

					<description><![CDATA[<p>El llenado de área es fundamental en la creación de imágenes y gráficos por computadora, ya que permite dar forma y color a objetos y representar de manera realista una amplia variedad de elementos visuales en aplicaciones gráficas y de diseño. Su implementación varía según la plataforma y el tipo de gráficos que se deseen crear. A continuación se muestra un ejemplo, dando textura. Requerimiento de ejemplo Tener un archivo de textura de madera (&#8220;wood_texture.png&#8221; en este caso) en el mismo directorio donde se encuentra el script o ajusta la ruta en consecuencia. Tener instalado la libreria pygame, se puede realizar con el siguiente comando Código de ejemplo Explicando el código Se comienza importando la biblioteca Pygame y luego inicializa Pygame. Pygame es una biblioteca que se utiliza comúnmente para crear juegos y aplicaciones gráficas en Python. Las siguientes líneas de código configuran la ventana de visualización de Pygame. Establece el tamaño de la ventana en 400&#215;400 píxeles y le da un título (&#8220;Ejemplo de Llenado de Área&#8221;). Estas líneas definen tres tipos de llenado para áreas: Estas líneas definen las coordenadas y el tamaño del área que se llenará con los diferentes tipos de llenado. En este caso, se establece un área rectangular con coordenadas (100, 100) y un ancho y alto de 200 píxeles. Este ciclo principal se ejecuta mientras la variable running sea verdadera. Se utiliza para manejar eventos, como cerrar la ventana. Si el usuario cierra la ventana, se establece running en falso y el bucle se detiene. Esta línea utiliza pygame.draw.rect para llenar el área definida por las coordenadas (area_x, area_y) y el tamaño (area_width, area_height) con el color sólido definido en solid_color. Este código llena el área con un patrón de líneas azules (pattern_color). Itera a través de x en pasos de 10 píxeles desde la coordenada area_x hasta area_x + area_width. En cada iteración, dibuja una línea vertical azul que cubre todo el alto del área. Esta sección llena el área con una textura de madera (wood_texture). Itera a través de x y y en pasos del ancho y alto de la textura, respectivamente, y utiliza screen.blit para copiar la textura de madera en la ventana de Pygame en las coordenadas (x, y). Finalmente, pygame.display.flip() actualiza la ventana de visualización, lo que permite que los cambios de llenado se muestren en la pantalla. Al salir del bucle principal, pygame.quit() se utiliza para cerrar Pygame de manera adecuada y liberar los recursos. este código muestra cómo llenar un área rectangular en una ventana de Pygame con diferentes tipos de llenado</p>
<p>La entrada <a href="https://www.frexus.dev/post/llenado-de-area/">Llenado de área</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="1300" height="1300" src="https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-129733.jpeg" alt="llenado de área brown wooden surface" class="wp-image-2207" style="aspect-ratio:1;width:358px;height:auto" srcset="https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-129733.jpeg 1300w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-129733-300x300.jpeg 300w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-129733-1024x1024.jpeg 1024w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-129733-150x150.jpeg 150w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-129733-768x768.jpeg 768w" sizes="(max-width: 1300px) 100vw, 1300px" /><figcaption class="wp-element-caption">Photo by FWStudio on <a href="https://www.pexels.com/photo/brown-wooden-surface-129733/">Pexels.com</a></figcaption></figure>
</div>


<p>El llenado de área es fundamental en la creación de imágenes y gráficos por computadora, ya que permite dar forma y color a objetos y representar de manera realista una amplia variedad de elementos visuales en aplicaciones gráficas y de diseño. Su implementación varía según la plataforma y el tipo de gráficos que se deseen crear. A continuación se muestra un ejemplo, dando textura.</p>



<h2 class="wp-block-heading">Requerimiento de ejemplo</h2>



<p>Tener un archivo de textura de madera (&#8220;wood_texture.png&#8221; en este caso) en el mismo directorio donde se encuentra el script o ajusta la ruta en consecuencia. </p>



<p>Tener instalado la libreria pygame, se puede realizar con el siguiente comando</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip install pygame</pre>



<h2 class="wp-block-heading">Código de ejemplo</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import pygame

# Inicializa Pygame
pygame.init()

# Configuración de la ventana
window_size = (400, 400)
screen = pygame.display.set_mode(window_size)
pygame.display.set_caption("Ejemplo de Llenado de Área")

# Color sólido para el primer llenado
solid_color = (255, 0, 0)  # Rojo (R, G, B)

# Patrón de líneas para el segundo llenado
pattern_color = (0, 0, 255)  # Azul (R, G, B)

# Textura de madera para el tercer llenado
wood_texture = pygame.image.load("wood_texture.png")  # Asegúrate de tener un archivo de textura de madera

# Coordenadas del área
area_x = 100
area_y = 100
area_width = 200
area_height = 200

# Bucle principal
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Llenado del área con un color sólido
    pygame.draw.rect(screen, solid_color, (area_x, area_y, area_width, area_height))

    # Llenado del área con un patrón de líneas
    for x in range(area_x, area_x + area_width, 10):
        pygame.draw.line(screen, pattern_color, (x, area_y), (x, area_y + area_height))

    # Llenado del área con una textura
    for x in range(area_x, area_x + area_width, wood_texture.get_width()):
        for y in range(area_y, area_y + area_height, wood_texture.get_height()):
            screen.blit(wood_texture, (x, y))

    pygame.display.flip()

pygame.quit()
</pre>



<h2 class="wp-block-heading">Explicando el código</h2>



<p>Se comienza importando la biblioteca Pygame y luego inicializa Pygame. Pygame es una biblioteca que se utiliza comúnmente para crear juegos y aplicaciones gráficas en Python.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import pygame

# Inicializa Pygame
pygame.init()</pre>



<p>Las siguientes líneas de código configuran la ventana de visualización de Pygame. Establece el tamaño de la ventana en 400&#215;400 píxeles y le da un título (&#8220;Ejemplo de Llenado de Área&#8221;).</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># Color sólido para el primer llenado
solid_color = (255, 0, 0)  # Rojo (R, G, B)

# Patrón de líneas para el segundo llenado
pattern_color = (0, 0, 255)  # Azul (R, G, B)

# Textura de madera para el tercer llenado
wood_texture = pygame.image.load("wood_texture.png")
</pre>



<p>Estas líneas definen tres tipos de llenado para áreas:</p>



<ol class="wp-block-list">
<li><code>solid_color</code> es un color sólido representado en formato RGB (rojo puro).</li>



<li><code>pattern_color</code> es otro color sólido representado en formato RGB (azul puro).</li>



<li><code>wood_texture</code> es una textura cargada desde un archivo de imagen llamado &#8220;wood_texture.png&#8221;. Esta textura se utilizará para llenar áreas.</li>
</ol>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># Color sólido para el primer llenado
solid_color = (255, 0, 0)  # Rojo (R, G, B)

# Patrón de líneas para el segundo llenado
pattern_color = (0, 0, 255)  # Azul (R, G, B)

# Textura de madera para el tercer llenado
wood_texture = pygame.image.load("wood_texture.png")
</pre>



<p>Estas líneas definen las coordenadas y el tamaño del área que se llenará con los diferentes tipos de llenado. En este caso, se establece un área rectangular con coordenadas (100, 100) y un ancho y alto de 200 píxeles.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># Coordenadas del área
area_x = 100
area_y = 100
area_width = 200
area_height = 200</pre>



<p>Este ciclo principal se ejecuta mientras la variable <code>running</code> sea verdadera. Se utiliza para manejar eventos, como cerrar la ventana. Si el usuario cierra la ventana, se establece <code>running</code> en falso y el bucle se detiene.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># Bucle principal
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
</pre>



<p>Esta línea utiliza <code>pygame.draw.rect</code> para llenar el área definida por las coordenadas <code>(area_x, area_y)</code> y el tamaño <code>(area_width, area_height)</code> con el color sólido definido en <code>solid_color</code>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">    # Llenado del área con un color sólido
    pygame.draw.rect(screen, solid_color, (area_x, area_y, area_width, area_height))</pre>



<p>Este código llena el área con un patrón de líneas azules (<code>pattern_color</code>). Itera a través de <code>x</code> en pasos de 10 píxeles desde la coordenada <code>area_x</code> hasta <code>area_x + area_width</code>. En cada iteración, dibuja una línea vertical azul que cubre todo el alto del área.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">    # Llenado del área con un patrón de líneas
    for x in range(area_x, area_x + area_width, 10):
        pygame.draw.line(screen, pattern_color, (x, area_y), (x, area_y + area_height))
</pre>



<p>Esta sección llena el área con una textura de madera (<code>wood_texture</code>). Itera a través de <code>x</code> y <code>y</code> en pasos del ancho y alto de la textura, respectivamente, y utiliza <code>screen.blit</code> para copiar la textura de madera en la ventana de Pygame en las coordenadas <code>(x, y)</code>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">    # Llenado del área con una textura
    for x in range(area_x, area_x + area_width, wood_texture.get_width()):
        for y in range(area_y, area_y + area_height, wood_texture.get_height()):
            screen.blit(wood_texture, (x, y))
</pre>



<p>Finalmente, <code>pygame.display.flip()</code> actualiza la ventana de visualización, lo que permite que los cambios de llenado se muestren en la pantalla.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">    pygame.display.flip()
</pre>



<p>Al salir del bucle principal, <code>pygame.quit()</code> se utiliza para cerrar Pygame de manera adecuada y liberar los recursos.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pygame.quit()</pre>



<p>este código muestra cómo llenar un área rectangular en una ventana de Pygame con diferentes tipos de llenado</p>
<p>La entrada <a href="https://www.frexus.dev/post/llenado-de-area/">Llenado de área</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/post/llenado-de-area/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2206</post-id>	</item>
		<item>
		<title>Coordenadas</title>
		<link>https://www.frexus.dev/post/coordenadas/</link>
					<comments>https://www.frexus.dev/post/coordenadas/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Wed, 02 Aug 2023 20:59:51 +0000</pubDate>
				<category><![CDATA[post]]></category>
		<category><![CDATA[Graficación]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[pygame]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://www.frexus.dev/?p=2186</guid>

					<description><![CDATA[<p>Las coordenadas son fundamentales en la representación y manipulación de gráficos en la computadora. Al definir las coordenadas de un punto, puedes especificar su ubicación exacta en un espacio, lo que es esencial para dibujar objetos, crear animaciones y realizar transformaciones gráficas en un entorno digital. A continuación se muestra un ejemplo del uso de coordenadas en python Requerimientos del Ejemplo Para este ejemplo se requiere que se tenga instalado la librería pygame se puede instalar ejecutando los siguientes comandos en la terminal: Código del ejemplo El código en Python mostrado anteriormente utiliza la biblioteca Pygame para crear una ventana gráfica y dibujar un punto en coordenadas específicas. A continuación, te explico el código en detalle: El resultado es una ventana que muestra un punto rojo en las coordenadas (400, 300), y puedes cerrar la ventana haciendo clic en la &#8220;X&#8221; en la esquina superior derecha.</p>
<p>La entrada <a href="https://www.frexus.dev/post/coordenadas/">Coordenadas</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="976" height="1300" src="https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-17562861.jpeg" alt="Coordenadas red pin on political map" class="wp-image-2187" style="aspect-ratio:0.7507692307692307;width:379px;height:auto" srcset="https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-17562861.jpeg 976w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-17562861-225x300.jpeg 225w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-17562861-769x1024.jpeg 769w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-17562861-768x1023.jpeg 768w" sizes="auto, (max-width: 976px) 100vw, 976px" /><figcaption class="wp-element-caption">Photo by Mushfik Hasnain on <a href="https://www.pexels.com/photo/red-pin-on-political-map-17562861/">Pexels.com</a></figcaption></figure>
</div>


<p>Las coordenadas son fundamentales en la representación y manipulación de gráficos en la computadora. Al definir las coordenadas de un punto, puedes especificar su ubicación exacta en un espacio, lo que es esencial para dibujar objetos, crear animaciones y realizar transformaciones gráficas en un entorno digital. A continuación se muestra un ejemplo del uso de coordenadas en python </p>



<h3 class="wp-block-heading">Requerimientos del Ejemplo</h3>



<p>Para este ejemplo se requiere que se tenga instalado la librería pygame se puede instalar ejecutando los siguientes comandos en la terminal:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip install pygame</pre>



<h3 class="wp-block-heading">Código del ejemplo</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import pygame
import sys

# Inicializa pygame
pygame.init()

# Configuración de la ventana
window_size = (800, 600)
screen = pygame.display.set_mode(window_size)
pygame.display.set_caption("Ejemplo de Coordenadas")

# Color del punto (rojo en formato RGB)
point_color = (255, 0, 0)

# Coordenadas del punto
point_position = (400, 300)

# Bucle principal
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # Borra la pantalla
    screen.fill((0, 0, 0))

    # Dibuja un punto en las coordenadas especificadas
    pygame.draw.circle(screen, point_color, point_position, 5)

    # Actualiza la pantalla
    pygame.display.flip()
</pre>



<p>El  código en Python mostrado anteriormente utiliza la biblioteca Pygame para crear una ventana gráfica y dibujar un punto en coordenadas específicas. A continuación, te explico el código en detalle:</p>



<ol class="wp-block-list">
<li><code>pygame.init()</code>: Inicializa la biblioteca Pygame para que puedas utilizar sus funciones y clases.</li>



<li><code>window_size = (800, 600)</code>: Define el tamaño de la ventana con una tupla que representa el ancho y alto en píxeles.</li>



<li><code>screen = pygame.display.set_mode(window_size)</code>: Crea una ventana gráfica con el tamaño especificado.</li>



<li><code>pygame.display.set_caption("Ejemplo de Coordenadas")</code>: Establece un título para la ventana.</li>



<li><code>point_color = (255, 0, 0)</code>: Define el color del punto como rojo en formato RGB (rojo, verde, azul). En este caso, el punto será completamente rojo.</li>



<li><code>point_position = (400, 300)</code>: Define las coordenadas del punto en la ventana. En este caso, el punto se ubicará en el centro de la ventana a 400 píxeles desde el borde izquierdo y 300 píxeles desde el borde superior.</li>



<li>El bucle principal (<code>while True</code>) se encarga de mantener la ventana abierta y procesar eventos.</li>



<li>El bucle <code>for event in pygame.event.get():</code> itera a través de los eventos de Pygame, y si detecta un evento de cierre de ventana (<code>pygame.QUIT</code>), se apaga Pygame (<code>pygame.quit()</code>) y sale del programa (<code>sys.exit()</code>).</li>



<li><code>screen.fill((0, 0, 0))</code>: Borra la pantalla llenándola con color negro (0, 0, 0), lo que elimina cualquier dibujo previo.</li>



<li><code>pygame.draw.circle(screen, point_color, point_position, 5)</code>: Dibuja un círculo (punto) en la pantalla con el color y coordenadas especificados. El número 5 determina el radio del círculo.</li>



<li><code>pygame.display.flip()</code>: Actualiza la pantalla para mostrar el punto dibujado.</li>
</ol>



<p>El resultado es una ventana que muestra un punto rojo en las coordenadas (400, 300), y puedes cerrar la ventana haciendo clic en la &#8220;X&#8221; en la esquina superior derecha.</p>
<p>La entrada <a href="https://www.frexus.dev/post/coordenadas/">Coordenadas</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/post/coordenadas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2186</post-id>	</item>
		<item>
		<title>Bibliotecas gráficas</title>
		<link>https://www.frexus.dev/post/bibliotecas-graficas/</link>
					<comments>https://www.frexus.dev/post/bibliotecas-graficas/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Tue, 01 Aug 2023 01:02:01 +0000</pubDate>
				<category><![CDATA[post]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[pygame]]></category>
		<category><![CDATA[pyopengl]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://www.frexus.dev/?p=2176</guid>

					<description><![CDATA[<p>Las bibliotecas gráficas, como DirectX y OpenGL, desempeñan un papel fundamental en el mundo de la programación y el desarrollo de aplicaciones interactivas, especialmente en el ámbito de los videojuegos y la simulación gráfica. Estas proporcionan a los desarrolladores las herramientas necesarias para aprovechar al máximo el potencial de los componentes gráficos de una computadora y crear experiencias visuales envolventes. DirectX, desarrollado por Microsoft, es una suite de tecnologías diseñada principalmente para plataformas Windows, mientras que OpenGL, una especificación de gráficos multiplataforma, ofrece un enfoque más abierto y compatible con diversas plataformas, incluyendo Windows, macOS y Linux. Ambas bibliotecas permiten controlar gráficos en 2D y 3D, interactuar con dispositivos de entrada y crear entornos visuales impactantes en una variedad de aplicaciones. Ya sea que estés interesado en juegos, visualización científica o aplicaciones de diseño, comprender estas bibliotecas gráficas es esencial para desarrollar software atractivo y de alto rendimiento. Directx Para hacer un pequeño test de la biblioteca gráfica Directx sigue los siguientes pasos: OpenGL OpenGL es una tecnología gráfica de código abierto y se utiliza ampliamente en sistemas Windows, Mac y Linux. Para probar OpenGL, puedes utilizar programas de prueba de rendimiento gráfico como &#8220;OpenGL Extensions Viewer&#8221; o &#8220;GL-Z.&#8221; o usar el siguiente código escrito en python Para que este código funcione hay que instalar las siguientes librerías: PyGame, PyOpenGL y PyOpenGL_accelerate. Para instalarlas hay que hacer uso del comando pip de la siguiente forma: Una vez que se tenga instalado las librerías copia el siguiente código en un fichero con nombre test_opengl.py Una vez que se haya guardado el fichero, abre la terminal y ejecutalo. Se suele hacer con el siguiente comando: Pulsas enter y debe de abrirse una ventana con un cubo, sus aristas girando.</p>
<p>La entrada <a href="https://www.frexus.dev/post/bibliotecas-graficas/">Bibliotecas gráficas</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="867" height="1300" src="https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-17691844.jpeg" alt="bibliotecas gráficas model with angel wings" class="wp-image-2177" style="aspect-ratio:0.666923076923077;width:323px;height:auto" srcset="https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-17691844.jpeg 867w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-17691844-200x300.jpeg 200w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-17691844-683x1024.jpeg 683w, https://www.frexus.dev/wp-content/uploads/2023/11/pexels-photo-17691844-768x1152.jpeg 768w" sizes="auto, (max-width: 867px) 100vw, 867px" /><figcaption class="wp-element-caption">Photo by Nataliia Holovchuk on <a href="https://www.pexels.com/photo/model-with-angel-wings-17691844/">Pexels.com</a></figcaption></figure>
</div>


<p>Las bibliotecas gráficas, como <strong>DirectX</strong> y <strong>OpenGL</strong>, desempeñan un papel fundamental en el mundo de la programación y el desarrollo de aplicaciones interactivas, especialmente en el ámbito de los videojuegos y la simulación gráfica. Estas proporcionan a los desarrolladores las herramientas necesarias para aprovechar al máximo el potencial de los componentes gráficos de una computadora y crear experiencias visuales envolventes. </p>



<p><strong>DirectX</strong>, desarrollado por Microsoft, es una suite de tecnologías diseñada principalmente para plataformas Windows, mientras que <strong>OpenGL</strong>, una especificación de gráficos multiplataforma, ofrece un enfoque más abierto y compatible con diversas plataformas, incluyendo <strong>Windows</strong>, <strong>macOS</strong> y <strong>Linux</strong>. </p>



<p>Ambas bibliotecas permiten controlar gráficos en 2D y 3D, interactuar con dispositivos de entrada y crear entornos visuales impactantes en una variedad de aplicaciones. Ya sea que estés interesado en juegos, visualización científica o aplicaciones de diseño, comprender estas bibliotecas gráficas es esencial para desarrollar software atractivo y de alto rendimiento.</p>



<h2 class="wp-block-heading">Directx</h2>



<p>Para hacer un pequeño test de la biblioteca gráfica Directx sigue los siguientes pasos:</p>



<ol class="wp-block-list">
<li>Presiona la tecla &#8220;Windows&#8221; + &#8220;R&#8221; para abrir la ventana Ejecutar.</li>



<li>Escribe &#8220;dxdiag&#8221; y presiona Enter.</li>



<li>Se abrirá la utilidad &#8220;DirectX Diagnostic Tool&#8221;. Aquí podrás ver información detallada sobre tu versión de DirectX en la pestaña &#8220;System&#8221;.</li>
</ol>



<h2 class="wp-block-heading">OpenGL</h2>



<p>OpenGL es una tecnología gráfica de código abierto y se utiliza ampliamente en sistemas Windows, Mac y Linux. Para probar OpenGL, puedes utilizar programas de prueba de rendimiento gráfico como &#8220;OpenGL Extensions Viewer&#8221; o &#8220;GL-Z.&#8221; o usar el siguiente código escrito en python</p>



<p>Para que este código funcione hay que instalar las siguientes librerías: PyGame, PyOpenGL y PyOpenGL_accelerate. Para instalarlas hay que hacer uso del comando pip de la siguiente forma:  </p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip install PyGame PyOpenGL PyOpenGL_accelerate</pre>



<p>Una vez que se tenga instalado las librerías copia el siguiente código en un fichero con nombre <strong>test_opengl.py</strong> </p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">from OpenGL.GL import *
import sys
import pygame
from pygame.locals import *
from OpenGL.GLU import *


vertices = [(0.5, -0.5, 0.5), (-0.5, -0.5, 0.5), (0.5, 0.5, 0.5), (-0.5, 0.5, 0.5), (0.5, 0.5, -0.5), (-0.5, 0.5, -0.5), (0.5, -0.5, -0.5), (-0.5, -0.5, -0.5), (0.5, 0.5, 0.5), (-0.5, 0.5, 0.5), (0.5, 0.5, -0.5), (-0.5, 0.5, -0.5),
            (0.5, -0.5, -0.5), (0.5, -0.5, 0.5), (-0.5, -0.5, 0.5), (-0.5, -0.5, -0.5), (-0.5, -0.5, 0.5), (-0.5, 0.5, 0.5), (-0.5, 0.5, -0.5), (-0.5, -0.5, -0.5), (0.5, -0.5, -0.5), (0.5, 0.5, -0.5), (0.5, 0.5, 0.5), (0.5, -0.5, 0.5)]
triangles = [0, 2, 3, 0, 3, 1, 8, 4, 5, 8, 5, 9, 10, 6, 7, 10, 7, 11, 12,
             13, 14, 12, 14, 15, 16, 17, 18, 16, 18, 19, 20, 21, 22, 20, 22, 23]


def wireCube():
    for t in range(len(triangles) - 3):
        glBegin(GL_LINES)
        glVertex3fv(vertices[triangles[t]])
        glVertex3fv(vertices[triangles[t + 1]])
        glVertex3fv(vertices[triangles[t + 2]])
        glEnd()
        t += 3

pygame.init()

# Project settings
screen_width = 900
screen_height = 600
background_color = (0, 0, 0, 1)
drawing_color = (0, 1, 0, 1)

screen = pygame.display.set_mode(
    (screen_width, screen_height), DOUBLEBUF | OPENGL)

clock = pygame.time.Clock()


def initialise():
    glClearColor(background_color[0], background_color[1],
                 background_color[2], background_color[3])
    glColor(drawing_color)

    # Projection
    glMatrixMode(GL_PROJECTION)
    glLoadIdentity()
    gluPerspective(60, (screen_width / screen_height), 0.1, 100.0)

    # Model View
    glMatrixMode(GL_MODELVIEW)
    glTranslate(0, 0, -5)
    glLoadIdentity()
    glViewport(0, 0, screen.get_width(), screen.get_height())
    glEnable(GL_DEPTH_TEST)
    glTranslate(0, 0, -2)


def display():
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
    glRotatef(1, 10, 0, 1)
    glPushMatrix()
    wireCube()
    glPopMatrix()


done = False
initialise()
while not done:
    clock.tick(60) / 1000
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True
    display()
    pygame.display.flip()
    pygame.display.set_caption(f"{clock.get_fps():.0f} Frame por segundo")
pygame.quit()        </pre>



<p>Una vez que se haya guardado el fichero, abre la terminal y ejecutalo. Se suele hacer con el siguiente comando:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">python test_opengl.py</pre>



<p>Pulsas enter y debe de abrirse una ventana con un cubo, sus aristas girando.</p>
<p>La entrada <a href="https://www.frexus.dev/post/bibliotecas-graficas/">Bibliotecas gráficas</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/post/bibliotecas-graficas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2176</post-id>	</item>
	</channel>
</rss>
