PyOpenGL學習筆記---畫線(繪制金剛石)
PyOpenGL繪制金剛石
代碼 `
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
import math
def drawLine():
glClearColor(0.0, 0.0, 0.0, 0.0)
glClear(GL_COLOR_BUFFER_BIT)
n = 18 # 頂點數
r = 0.5 # 半徑
pi = math.pi
angle = 2 * pi / (n)
x = []
y = []
for i in range(1, n + 1):
x.append(r * math.cos(i * angle))
y.append(r * math.sin(i * angle))
glColor3f(1.0, 0.0, 0.0) # 顏色設置
glLineWidth(2)
for i in range(n):
for j in range(i + 1, n):
glBegin(GL_LINES)
glVertex3f(x[i], y[i], 0.0)
glVertex3f(x[j], y[j], 0.0)
glEnd()
glFlush()
if __name__ == '__main__':
glutInit()
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA)
glutInitWindowSize(800, 800)
glutCreateWindow(b"Diamond")
glutDisplayFunc(drawLine)
glutMainLoop()
智能推薦
PyOpengl學習(三):繪制點、線、面(上)
今天我們來看一下在OpenGL中如何繪制點線面。 我們使用glBegin,和glEnd兩個函數進行所要繪制圖形的描述。繪制的內容要放在這兩個函數之間。 一,首先來了解一下OpenGl圖元的模式標識  ...
漢諾塔(Hanoi)c語言做法:漢諾塔(Hanoi)是必須用遞歸方法才能解決的經典問題。它來自于印度神話。上帝創造世界時作了三根金剛石柱子,在第一根柱子上從下往上按大小順序摞著64片黃金圓盤
漢諾塔(Hanoi)是必須用遞歸方法才能解決的經典問題。借助c桿將所有的圓盤移到b桿上,每次只能移一個,且小的盤子一定在大的盤子上面 它來自于印度神話。上帝創造世界時作了三根金剛石柱子,在第一根柱子上從下往上按大小順序摞著64片黃金圓盤,如圖所示。上帝命令婆羅門把圓盤從下面開始按大小順序重新擺放到第二根柱子上,并且規定,每次只能移動一個圓盤,在小圓盤上不能放大圓盤。有人預言說,這件事完成時宇宙會在...
Python 3學習筆記(17):PyOpenGL之組合螺釘
目的 組合螺帽、螺桿、螺紋成螺釘,可用箭頭鍵切換視角。 內容 把螺釘的三個部分在適當的位置畫出,組成螺釘。螺桿不用修改和移動,螺紋必須旋轉來吻合螺桿,螺帽需要旋轉和移動,并放在合適的位置。 代碼 ...
PyOpengl學習(一):環境搭建
一,安裝 安裝pyopengl很簡單,只需要用pip工具執行下面命令就行了 但是安裝過程中可能 會遇到這個的異常:error: Microsoft Visual C++ 10.0 is required 意思就是我們需要安裝對應的c++庫。折騰了很久終于找到了辦法,親測可行: 打開網站https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl 找到py...
猜你喜歡
Python 3學習筆記(13):PyOpenGL之正交投影
目的 1、建立金屬螺釘的模型(三個組成:螺帽、螺桿、螺紋) 2、創建一個正交投影立方體框架,可用箭頭鍵切換視角。 3、掌握OpenGL的頂點數組功能。 4、掌握OpenGL的繪制圖元函數。 5、 了解OpengGL鍵盤控制及回調函數glutSpecialFunc。 內容 1、用較小、較簡單的圖形生成一個較復雜的圖形。如建立一個建立金屬螺釘的模型(三個組成:螺帽、螺桿、螺紋) 2、開始構...
opencv學習筆記3:畫線,畫圓,方框,橢圓,文字
opencv學習筆記3:畫線,畫圓,方框,橢圓,文字 opencv學習筆記3:畫線,畫圓,方框,橢圓,文字 目標 參數解釋 Drawing Line 畫線 Drawing Rectangle 畫矩形 Drawing Circle 畫圓 Drawing Ellipse 畫橢圓 Drawing Polygon 畫多邊形 圖片上添加文字 畫圖結果顯示 Additional Resources 目標 1使...
3D游戲編程與設計——游戲對象與圖形基礎章節作業與練習
3D游戲編程與設計——游戲對象與圖形基礎章節作業與練習 3D游戲編程與設計——游戲對象與圖形基礎章節作業與練習 自學資源 作業內容 1、基本操作演練【建議做】 天空盒的制作: 地圖的制作: 整體效果: 2、編程實踐 項目要求: 項目結構: 代碼詳解: Actions: ISSActionCallback.cs SSAction.cs SSAction...
FlycoTabLayout 的使用
FlycoTabLayout 一個Android TabLayout庫,目前有3個TabLayout SlidingTabLayout:參照PagerSlidingTabStrip進行大量修改. 新增部分屬性 新增支持多種Indicator顯示器 新增支持未讀消息顯示 新增方法for懶癌患者 CommonTabLayout:不同于SlidingTabLayout對ViewPager依賴,它是一個不...
爬蟲項目實戰八:爬取天氣情況
爬取天氣情況 目標 項目準備 接口分析 代碼實現 效果顯示 寫入本地 目標 根據天氣接口,爬取接下來一周的天氣情況。 項目準備 軟件:Pycharm 第三方庫:requests,BeautifulSoup,csv 接口地址:http://api.k780.com:88/?app=weather.future&weaid=城市名&appkey=10003&sign=b59bc...