首页 \ 问答 \ 如何从头开始创建实时渲染窗口?(How do I create a real-time rendering window from scratch?)

如何从头开始创建实时渲染窗口?(How do I create a real-time rendering window from scratch?)

我已经在自己研究3D图形了一段时间了,我希望能够更好地理解一切是如何工作的。 我想做的是在不使用DirectX或OpenGL的情况下创建一个简单的游戏。 我理解我相信的大部分数学,但我遇到的问题是我不知道如何控制窗口中显示的像素。

如何在窗口中指定每个像素的颜色?

我知道我可能会遇到缓冲区和图像剪切以及可能是非常糟糕的效率问题,但我想创建自己的程序,以便从最低级别的高级语言中看到渲染过程的工作原理。 我真的不知道从哪里开始。 我已经想出了如何输出BMP,但我希望有一个正在运行的程序每秒吐出20多帧。 我该如何做到这一点?


I've been studying 3D graphics on my own for a while now and I want to get a greater understanding of just how everything works. What I would like to do is to create a simple game without using DirectX or OpenGL. I understand most of the math I believe, but the problem I am running up against is I do not know how to get control of the pixels being displayed in a window.

How do I specify what color I want each pixel in my window to be?

I understand I will probably run into issues with buffers and image shearing and probably terrible efficiency problems, but I want to create my own program so that I could see from the very lowest level, of the high level language, how the rendering process works. I really have no idea where to start though. I've figured out how to output BMPs, but I would like to have a running program spitting out 20+ frames per second. How do I accomplish this?


原文:https://stackoverflow.com/questions/8977728
更新时间:2023-12-21 22:12

最满意答案

您可以使用:

#convert if dtype not datetime
df.Date = pd.to_datetime(df.Date)
#create index from column Date
df = df.set_index('Date')
#convert all times to timedelta
df.columns = pd.to_timedelta(df.columns + ':00', unit='h')
#reshape - columns to second level of index
df = df.stack()
#Multindex to index
df.index = df.index.get_level_values(0) + df.index.get_level_values(1)
#create column from index
df = df.reset_index()
#get new column names
df.columns = ['date','val']
print (df)
                  date      val
0  2004-05-01 00:15:00  3.74618
1  2004-05-01 00:30:00  3.58507
2  2004-05-01 00:45:00  3.30998
3  2004-05-01 23:15:00  2.97236
4  2004-05-01 23:30:00  2.92008
5  2004-05-01 23:45:00  2.80101
6  2004-05-02 00:00:00  2.60670
7  2004-05-02 00:15:00  3.09098
8  2004-05-02 00:30:00  3.84625
9  2004-05-02 00:45:00  3.54672
10 2004-05-02 23:15:00  2.83725
11 2004-05-02 23:30:00  2.93876
12 2004-05-02 23:45:00  2.82762
13 2004-05-03 00:00:00  2.62550

You can use:

#convert if dtype not datetime
df.Date = pd.to_datetime(df.Date)
#create index from column Date
df = df.set_index('Date')
#convert all times to timedelta
df.columns = pd.to_timedelta(df.columns + ':00', unit='h')
#reshape - columns to second level of index
df = df.stack()
#Multindex to index
df.index = df.index.get_level_values(0) + df.index.get_level_values(1)
#create column from index
df = df.reset_index()
#get new column names
df.columns = ['date','val']
print (df)
                  date      val
0  2004-05-01 00:15:00  3.74618
1  2004-05-01 00:30:00  3.58507
2  2004-05-01 00:45:00  3.30998
3  2004-05-01 23:15:00  2.97236
4  2004-05-01 23:30:00  2.92008
5  2004-05-01 23:45:00  2.80101
6  2004-05-02 00:00:00  2.60670
7  2004-05-02 00:15:00  3.09098
8  2004-05-02 00:30:00  3.84625
9  2004-05-02 00:45:00  3.54672
10 2004-05-02 23:15:00  2.83725
11 2004-05-02 23:30:00  2.93876
12 2004-05-02 23:45:00  2.82762
13 2004-05-03 00:00:00  2.62550

相关问答

更多

相关文章

更多

最新问答

更多
  • h2元素推动其他h2和div。(h2 element pushing other h2 and div down. two divs, two headers, and they're wrapped within a parent div)
  • 创建一个功能(Create a function)
  • 我投了份简历,是电脑编程方面的学徒,面试时说要培训三个月,前面
  • PDO语句不显示获取的结果(PDOstatement not displaying fetched results)
  • Qt冻结循环的原因?(Qt freezing cause of the loop?)
  • TableView重复youtube-api结果(TableView Repeating youtube-api result)
  • 如何使用自由职业者帐户登录我的php网站?(How can I login into my php website using freelancer account? [closed])
  • SQL Server 2014版本支持的最大数据库数(Maximum number of databases supported by SQL Server 2014 editions)
  • 我如何获得DynamicJasper 3.1.2(或更高版本)的Maven仓库?(How do I get the maven repository for DynamicJasper 3.1.2 (or higher)?)
  • 以编程方式创建UITableView(Creating a UITableView Programmatically)
  • 如何打破按钮上的生命周期循环(How to break do-while loop on button)
  • C#使用EF访问MVC上的部分类的自定义属性(C# access custom attributes of a partial class on MVC with EF)
  • 如何获得facebook app的publish_stream权限?(How to get publish_stream permissions for facebook app?)
  • 如何防止调用冗余函数的postgres视图(how to prevent postgres views calling redundant functions)
  • Sql Server在欧洲获取当前日期时间(Sql Server get current date time in Europe)
  • 设置kotlin扩展名(Setting a kotlin extension)
  • 如何并排放置两个元件?(How to position two elements side by side?)
  • 如何在vim中启用python3?(How to enable python3 in vim?)
  • 在MySQL和/或多列中使用多个表用于Rails应用程序(Using multiple tables in MySQL and/or multiple columns for a Rails application)
  • 如何隐藏谷歌地图上的登录按钮?(How to hide the Sign in button from Google maps?)
  • Mysql左连接旋转90°表(Mysql Left join rotate 90° table)
  • dedecms如何安装?
  • 在哪儿学计算机最好?
  • 学php哪个的书 最好,本人菜鸟
  • 触摸时不要突出显示表格视图行(Do not highlight table view row when touched)
  • 如何覆盖错误堆栈getter(How to override Error stack getter)
  • 带有ImageMagick和许多图像的GIF动画(GIF animation with ImageMagick and many images)
  • USSD INTERFACE - > java web应用程序通信(USSD INTERFACE -> java web app communication)
  • 电脑高中毕业学习去哪里培训
  • 正则表达式验证SMTP响应(Regex to validate SMTP Responses)