Python 3 학습노트(11): PyOpenGL의 웃는 얼굴 그리기 비트맵
1688 단어 Python
OpenGL에서 비트맵은 2색 이미지로 화면에 알파벳이나 문자(예를 들어 아이콘)를 그릴 수 있다.
OpenGL은 비트맵을 그리는 함수glBitmap을 제공합니다.
프로그램 정의 16×16의 픽셀 비트맵, 비트맵은 64개의 기호 바이트가 없는 그룹으로 그림에 줄마다 4바이트가 있다(줄마다 마지막 두 바이트는 사용되지 않는다).첫 번째 바이트의 일곱 번째 비트는 아이콘의 왼쪽 아래 모서리에 해당합니다(예: 이미지 위아래 거꾸로).
함수 glRasterPos2i를 호출하여 현재 래스터의 위치를 지정합니다.
함수 glBitmap(너비 w, 높이 h, 중심점 x, 중심점 y, xmove, ymove, 배열bits)
xmove, ymove는 보통 비트맵 글꼴로 다음 문자 칸으로 이동합니다.
#coding:utf-8
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
import random
def Redraw():
#/* 16x16 smiley face */
smiley= [ 0x03, 0xc0, 0, 0,\
0x0f, 0xf0, 0, 0,\
0x1e, 0x78, 0, 0,\
0x39, 0x9c, 0, 0,\
0x77, 0xee, 0, 0,\
0x6f, 0xf6, 0, 0,\
0xff, 0xff, 0, 0,\
0xff, 0xff, 0, 0,\
0xff, 0xff, 0, 0,\
0xff, 0xff, 0, 0,\
0x73, 0xce, 0, 0, \
0x73, 0xce, 0, 0, \
0x3f, 0xfc, 0, 0, \
0x1f, 0xf8, 0, 0, \
0x0f, 0xf0, 0, 0, \
0x03, 0xc0, 0, 0 ]
glClearColor(0.0, 0.0, 0.0, 1.0)
glClear(GL_COLOR_BUFFER_BIT)
glColor3f(1.0, 1.0, 0.0)
for i in range(100):
glRasterPos2i(random.randint(0,1000) % width, random.randint(0,1000) % height)
glBitmap( 16, 16, 8, 8, 0, 0, smiley)
glFinish()
#
def Resize(w,h):
global width, height
width = w
height = h
glViewport(0, 0, w, h)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glOrtho(0.0, w, 0.0, h, -1.0, 1.0)
glMatrixMode(GL_MODELVIEW)
# glut OpenGL
glutInit()
# :GLUT_SINGLE |GLUT_RGB RGB
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)
glutCreateWindow("Bitmap Smiley Face Example")
#
glutDisplayFunc(Redraw)
glutReshapeFunc(Resize)
#
glutMainLoop()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.