python 管线原理图_Python之OpenGL笔记(25):动态管线绘制球体

一、目的

1、画一个球体;

二、程序运行结果

球体

三、球体的生成

球面坐标计算示意图

1、将球体横向向切成30片, 纵向切30片,共900个点,见示意图

2、循环生成900个点的空间坐标(x,y,z),球面上点C的坐标

3、 x= R * cos(NumAngleHy) * cos(NumAngleZx)

4、 y = R * sin(NumAngleHy)

5、 z = R * cos(NumAngleHy) * sin(NumAngleZx)

6、将900个点按顺序存入顶点缓冲区,

7、将相邻的三个点的顺序索引值存入索引缓冲区。

8、调用OpenGL动态管线进行渲染。

四、glPolygonMode函数

功能:用于控制多边形的显示方式

glPolygonMode是一个函数,原型是:void glPolygonMode(GLenum face,GLenum mode);

face这个参数确定显示模式将适用于物体的哪些部分,控制多边形的正面和背面的绘图模式:

GL_FRONT表示显示模式将适用于物体的前向面(也就是物体能看到的面)

GL_BACK表示显示模式将适用于物体的后向面(也就是物体上不能看到的面)

GL_FRONT_AND_BACK表示显示模式将适用于物体的所有面

mode这个参数确定选中的物体的面以何种方式显示(显示模式):

GL_POINT表示显示顶点,多边形用点显示

GL_LINE表示显示线段,多边形用轮廓显示

GL_FILL表示显示面,多边形采用填充形式

五、源代码

"""

程序名称:GL_DrawSphere01.py

编程: dalong10

功能: 画一个球体

参考资料:

"""

import myGL_Funcs #Common OpenGL utilities,see myGL_Funcs.py

import sys, random, math

import OpenGL

from OpenGL.GL import *

from OpenGL.GL.shaders import *

import numpy

import numpy as np

import glfw

strVS = """

#version 330 core

layout(location = 0) in vec3 position;

uniform mat4 uMVMatrix;

uniform mat4 uPMatrix;

uniform float a;

uniform float b;

uniform float c;

uniform float Rx;

uniform float Ry;

uniform float Rz;

uniform float theta1;

void main(){

mat4 rot1=mat4(vec4(1.0, 0.0,0.0,0),

vec4(0.0, 1.0,0.0,0),

vec4(0.0,0.0,1.0,0.0),

vec4(

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值