使用PyOpenGL绘制三维坐标系实例

yipeiwu_com7年前Python基础

我就废话不多说了,直接上代码吧!

def drawCoordinate():
  '''
  绘制三维的坐标系,并绘制由坐标轴构成的平面的网格,各个坐标轴的颜色以及由坐标轴所引出的网格线的颜色为:
  x: (1.0, 0.0, 0.0)
  y: (0.0, 1.0, 0.0)
  z: (0.0, 0.0, 1.0)
  :return:
  '''
  #设置网格线间的步长
  step = 0.2
  #设置网格线的数量、长度
  line_num = 15
  line_len = 4
  grid_color = [(1.0, 0.0, 0.0), (0.0, 1.0, 0.0), (0.0, 0.0, 1.0)]

  glLineWidth(3)
  origin = [0.0, 0.0, 0.0]
  #画出xyz轴
  for i in range(3):
    tmp = [0.0, 0.0, 0.0]
    tmp[i] = line_len*1.02
    glColor3f(*grid_color[i])
    glBegin(GL_LINES)
    glVertex3f(*origin)
    glVertex3f(*tmp)
    glEnd()


  # 画出由坐标轴构成的平面的网格
  glLineWidth(1)
  for i in range(3):
  	#每次把一个坐标轴上引出的网格线都画出来,所以起点都是一致的
    start = [0.0, 0.0, 0.0]
    glColor3f(*grid_color[i])
    for j in range(line_num):
      end = [0.0, 0.0, 0.0]
      glBegin(GL_LINES)
      start[i] = start[i] + step
      end[i] = start[i]
      for k in {0,1,2} - {i,}:
        end[k] = line_len
        glVertex3f(*start)
        glVertex3f(*end)
        end[k] = 0.0
      glEnd()

以上这篇使用PyOpenGL绘制三维坐标系实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python利用QQ邮箱发送邮件的实现方法(分享)

废话不多说,直接上代码 Python2.7 #!/usr/bin/env python2.7 # -*- coding=utf-8 -*- import smtplib from...

Python实现二维数组输出为图片

对于二维数组,img_mask [[ 0 0 0 ..., 7 7 7] [ 0 0 0 ..., 7 7 7] [ 0 0 0 ..., 7 7 7] ..., [266...

python 堆和优先队列的使用详解

1.heapq python里面的堆是通过在列表中维护堆的性质实现的。这一点与C++中heap一系列的算法类似,底层是通过堆vector的维护获取堆的性质。 关于二叉树 二叉树的...

浅析Python 引号、注释、字符串

Python3.6.3    json==2.0.9    win10.0.17134 字符串 1.不可变类型,可迭代对...

python 使用shutil复制图片的例子

主要步骤: import shutil shutil.copyfile(old_image,new_image) 完整: 这里要做的是,将原图片复制10份,为防止原文件夹中有很...