python:pygame, pyOpenGL 示例:旋转的八面体

程序员数学:用Python学透线性代数和微积分 中文目录 【程序员数学:用Python学透线性代数和微积分】中文目录 和 源代码文件 阅读详情

参阅:【程序员数学:用Python学透线性代数和微积分】
下载:随书下载=> 源代码文件.zip , 程序员数学 附录.pdf

解压 源代码文件.zip 后访问目录 Math-for-Programmers-master\
点击 Anaconda3:Jupyter Notebook 打开 *.ipynb 文件,可见源代码。

我比较喜欢附录C 示例:旋转的八面体 
D:\数学\Math-for-Programmers-master\Appendix C\rotate_octahedron.py

pip install pygame
pip install pyOpenGL

import pygame
from pygame.locals import *
from OpenGL.GL import *
from OpenGL.GLU import *
import matplotlib.cm
from vectors import *
from math import *

def normal(face):
    return(cross(subtract(face[1], face[0]), subtract(face[2], face[0])))

#blues = matplotlib.cm.get_cmap('Blues')
blues = matplotlib.colormaps['Blues']

def shade(face,color_map=blues,light=(1,2,3)):
    return color_map(1 - dot(unit(normal(face)), unit(light)))

light = (1,2,3)
faces = [
    [(1,0,0), (0,1,0), (0,0,1)],
    [(1,0,0), (0,0,-1), (0,1,0)],
    [(1,0,0), (0,0,1), (0,-1,0)],
    [(1,0,0), (0,-1,0), (0,0,-1)],
    [(-1,0,0), (0,0,1), (0,1,0)],
    [(-1,0,0), (0,1,0), (0,0,-1)],
    [(-1,0,0), (0,-1,0), (0,0,1)],
    [(-1,0,0), (0,0,-1), (0,-1,0)],
]

def Axes():
    axes =  [
        [(-1000,0,0),(1000,0,0)],
        [(0,-1000,0),(0,1000,0)],
        [(0,0,-1000),(0,0,1000)]
    ]
    glBegin(GL_LINES)
    for axis in axes:
        for vertex in axis:
            glColor3fv((1,1,1))
            glVertex3fv(vertex)
    glEnd()

pygame.init()
display = (400,400)
window = pygame.display.set_mode(display, DOUBLEBUF|OPENGL)

gluPerspective(45, 1, 0.1, 50.0)

glTranslatef(0.0,0.0, -5)

glEnable(GL_CULL_FACE)
glEnable(GL_DEPTH_TEST)
glCullFace(GL_BACK)

clock = pygame.time.Clock()
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()



    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)


    degrees_per_second = 360./5.
    degrees_per_millisecond = degrees_per_second / 1000.
    milliseconds = clock.tick()
    degrees = degrees_per_millisecond * milliseconds
    glRotatef(degrees, 1,1,1)

    glBegin(GL_TRIANGLES)
    for face in faces:
        color = shade(face,blues,light)
        for vertex in face:
            glColor3fv((color[0], color[1], color[2]))
            glVertex3fv(vertex)
    glEnd()
    pygame.display.flip()

运行 python rotate_octahedron.py 

12、3D 图形变换与渲染全解析 本文深入解析了计算机图形学中的3D图形变换与渲染技术,涵盖3D物体的2D渲染方法、3D向量的基本运算和特性、常见的几何变换操作(如缩放、平移、旋转)、线性变换的数学表示以及计算机动画的实现原理。通过Python代码示例,展示了如何对3D模型(如八面体和茶壶)进行操作,并使用OpenGL和Pygame等工具进行动态渲染。文章为读者提供了计算机图形学的基础知识,并为3D动画和游戏开发等应用打下了坚实基础。 阅读详情

相关推荐

《程序员数学 》用python学透线性代数和微积分,源码程序,和书本对应 并做了错误的修改bug

《程序员数学 》用python学透线性代数和微积分,源码程序,和书本对应。并做了错误的修改bug

用Python学数学相关教程、开源包推荐与下载

(https://zhuanlan.zhihu.com/p/65454540)里,为大家推荐了一些数学学习的软件和微积分、线性代数、概率统计的学习视频,今天再推荐一些精心挑选的经典教材,并为大家提供电子书的下载链接,和视频搭配起来一起学习,效果会更好。同时我们也会为您介绍一些用Python学数学必备的一些软件和库。 美国大学最近几年出版的数学教材,都会有结合数学软件(MATLAB等CAS)来学...

lidongyx的博客 2450

用Python学数学全套资源(中英).zip

用Python学数学全套资源(中英) 包括文字和代码,全套资料。

【亲测免费】 《程序员数学》Python实现:线性代数与微积分实战

《程序员数学》Python实现:线性代数与微积分实战 【下载地址】程序员数学Python实现线性代数与微积分实战 本仓库为《程序员数学》一书的配套资源,旨在通过Python编程语言帮助读者深入理解线性代数和微积分的核心概念。仓库中包含了与书本内容对应的源码程序,并针对书中可能存在的错误进行了修正和优化。 ...

gitblog_09815的博客 570

《程序员数学 python学透线性代数和微积分》中的完善后的draw3D.py

修改后的代码,可以正常画出3D中的箭头,此为源代码,针对《程序员数学 python学透线性代数和微积分》第三章中用到的引用代码程序

Math-for-programmers.pdf

Mathematics for programmers (early draft)

笔记:程序员数学用Python学透线性代数和微积分PDF代码分析

笔记:程序员数学用Python学透线性代数和微积分PDF代码分析

2501_93198917的博客 351

线性代数和微积分.pdf

线性代数和微积分.pdf

Python 中用于数据科学和机器学习的线性代数

Python 中用于数据科学和机器学习的线性代数课程英文名:Linear Algebra for Data Science & Machine Learning in Python 向量、矩阵、线性方程组、因式分解、特征向量、最小二乘法、SVD。

m0_59236602的博客 969

python向量、矩阵、线性代数.pdf

python向量、矩阵、线性代数.pdf

用Python 绘制一个只属于你自己的世界地图

Python之所以这么流行,是因为它不仅能够应用于科技领域,还能用来做许多其他学科的研究工具,绘制地图便是其功能之一。 今天我们用matplot工具包之一的mpl_toolkits来绘制世界地图,这是一个简单的可视化工具,如果希望绘制更加复杂的地图,可以考虑使用Google Maps API,不过这不在我们今天的讨论范围之内。 1.安装 为了能够顺利开展本项目,你需要先安装以下依赖,在cmd或Terminal中输入以下命令: pipinstallnumpy pipinstallm...

qq_38887171的博客 1870

【亲测免费】 程序员数学资源下载

程序员数学资源下载 去发现同类优质开源项目:https://gitcode.com/ 资源介绍 本书名为《程序员数学》,旨在为程序员提供编程中常用的数学知识,帮助初级程序员培养数学思维。无论你是编程新手还是经验丰富的开发者,本书都能为你提供有价值的数学工具和思维方式。 适用对象 初级程序员 希望提升数学思维的开发者 对编程和数学感兴趣的读者 阅读要求 无需精通编程 无需精通数学 具备四则运算...

gitblog_06631的博客 510

open-web UI 实用指南

open-web UI 类似于chatgpt的界面,可以私有化模型本地部署,也可以用商业模型.本文只是用开源模型. 它以实现多模态AI聊天 , AI 翻译 , 语音转文本, 文本转语音, 文生图,代码助手,可谓利器。

szmars的博客 3万+

书单 | 专为程序员而写的数学书

写给程序员的数学书Top6TOP3TOP1TOP2程序员的数学系列基础数学知识和数学思维一套写给程序员的数学书-用好玩的方式带你掌握编程所需的“数学思维”- 全系列累计销量24万册的热销好书- 示例丰富,通俗易懂,讲解明晰简介:《程序员的数学》讲解二进制计数法、逻辑、余数、排列组合、递归、指数爆炸、不可解问题等许多与编程密切相关的数学方法,分析了哥尼斯堡七桥问题、高斯求和、汉诺塔、斐波那契数...

图灵教育 665

【Python3教程】Python3高级篇之uWSGI 安装配置

本文介绍了在Python 3环境中安装和配置uWSGI的完整流程,涵盖基本安装、Flask/Django应用部署、Nginx集成以及systemd管理等关键环节。主要内容包括:uWSGI的安装前提条件,创建简单WSGI应用,编写uWSGI配置文件(.ini格式),与Nginx配合实现生产环境部署,以及使用systemd实现服务管理。文章还提供了常见Web框架(Flask、Django)的部署示例和高级配置建议,如负载均衡、HTTPS设置等。最后列出了权限、端口占用等常见问题的解决方案,为开发者提供了一套完整

No8g攻城狮的博客 438

骑砍2霸主MOD开发(9)-游戏大地图(MapScene)

Settlement类型由town,castle,castle_village,village,hideout五种类型组成,通过对GameEntity中添加tag实现类型的加载.大地图中军团(MobileParty)的移动速度,AI寻路,食物消耗等均和当前MobileParty所处地形有关,地形统一被定义为TerrainType,类型有森林,荒漠等.MapScene.Read("Main_map", ref sceneInitializationData, "") 装载Main_map大地图。

骑砍战团&霸主MOD开发 1623

python编程与几何图形pdf_《程序员数学:使用 Python 进行 3D 图形,机器学习和仿真》PDF 免费下载...

面向程序员的数学:使用Python进行3D图形,机器学习和仿真作者:Paul Orland页数:550页ISBN-10:1617295353ISBN-13:9781617295355尺寸:7.38 x 9.25英寸出版社:Manning Publications;第一版(2020年5月12日)语言::英语要在数据科学,机器学习,计算机图形学和密码学领域取得一份工作,您需要为聚会增加强大的数学技能。...

weixin_39718890的博客 1020

ESP32网络开发实例-开发环境搭建

NodeMCU-ESP-32S开发环境搭建 NodeMCU-32S 最强的ESP32 开发板非盗版或副厂的CH340。WiFi 蓝牙ESP-32 可用Arduino IDE ESP32-S 是一款通用型WiFi-BT-BLE MCU模组,功能强大,用途广泛,可以用于低功耗传感器网络和要求极高的任务,例如语音编码、音频流和MP3解码等。 此款模组的核心是ESP32芯片,具有可扩展、自适应的特点。两个CPU核可以被单独控制或上电。时钟频率的调节范围为80 MHz到240 MHz。用户可以切断CPU的电源,利用低

视觉与物联智能 3781

数学与Python有机结合及统计学、微积分、线性代数相关资源、图形软件

无论是三大数学软件Matlab(通信、控制等工程例外)、Maple、Mathematica,还是三大统计软件Spass、Stata、SAS,这些可视化的软件本身就是编程的一个体现,它们在一定程度上降低了我们使用数学的门槛,但另一方面它们背后的功能是可以被编程取代的,而Python在数学和数据科学领域的流行,也是逐渐取代这些软件的一个过程。 在职业方面,精算师、金融工程、商业分析、数据分析师、数...

weixin_33796205的博客 602

《大数据: Hive 交互命令和常用配置》

一、Hive 交互命令 1. 首先解决一个可能发生的问题 (log4 jar包冲突) 我这里解决方法就是删除一个,我删的是hive下的包 yexiang@hadoop1:<hive>$ hive SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/soft/apache-hive-2.3.7-bin/lib/log4j-slf4j-impl-2.6.2.ja.

yexiang优快云的专栏 289

手把手教你学Simulink--基于车联网与智能交通系统的场景实例:基于车联网(V2X)的实时路况信息共享与处理

《基于Simulink的车联网(V2X)实时路况共享系统仿真》摘要:本文详细介绍使用Simulink构建V2X智能交通系统的完整方法。系统包含交通路网建模、V2X通信实现(支持DSRC/C-V2X标准)、多源路况信息融合、动态路径规划等核心模块。通过对比实验,验证V2X可使平均车速提升52%,行程时间缩短34%,显著提升交通效率。文章还探讨了AI预测调度、车辆编队等高级应用,为智慧交通系统开发提供实用参考。所需工具包括Simulink、SimEvents及无线通信工具箱等。

MHD0815的博客 739

math for programmers(转载)

英文内容,来自http://steve-yegge.blogspot.com/2006/03/math-for-programmers.html 翻译版见这里 相关内容见c2.com     原文内容如下:   I've been working for the past 15 months on repairing my rusty math skills, ever...

codeprac 955

海思SD3403/SS928V100开发(6)单路GMSL-MIPI-YUV相机视频输入调试

硬件连接:森云GMSL相机 -> GMSL 解串器 -> SD3403 MIPI0暂时先进行单路视频输入通路调试。

jzwjzw19900922的博客 1934

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 420

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 237

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【每天一个 Python 小案例30】Python 基础知识综合小项目:我的工具盒

作为系列收官,本篇把前 29 篇的知识点合成一个能直接用的命令行工具"我的工具盒":计算器(用 ast 解析表达式,不碰 eval)、单位换算与温度转换(一张换算表 + 特例分支)、记账与分类统计(Decimal + JSON 持久化)、以及用"字典当命令表"把菜单和业务逻辑解耦的主循环。文中对比了 eval 的安全隐患与 ast 白名单的做法,解释了 lambda 闭包在字典里的写法与晚绑定陷阱,并在最后给出整个系列的知识地图,把变量、数据结构、控制流、函数、类、异常、文件、标准库八块内容对应到具体篇目。

xinjiyaya的博客 427

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: 程序员数学:用Python学透线性代数和微积分 中文目录
下一篇: python:模拟金融市场走势,并预测
belldeep
博客等级 码龄20年 1821粉丝 584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值