计算机是如何表示 Python 等绘图命令的图像的?

2017-01-28 15:06:33 +08:00
 eccstartup
一些语言有 plot 函数,执行后会在屏幕上显示一条曲线,表示函数曲线的样子。比如 matlab 或 python 语言有这些功能。
那么,这些曲线是如何表达的?
请教 v 友给指点下,有什么关键词或者参考资料,或是工具给推荐下。
2683 次点击
所在节点    问与答
13 条回复
learnshare
2017-01-28 15:08:51 +08:00
翻翻源码呗
bxb100
2017-01-28 15:12:10 +08:00
图形学
eccstartup
2017-01-28 15:12:18 +08:00
@learnshare 距离读源码的水平甚远,或许理论性的东西和你容易懂,愿意试试
canautumn
2017-01-28 15:36:19 +08:00
都是矢量图。不同的软件有不同的实现,有些甚至可以选择,比如 matplotlib 这一个 python 库,绘图的后台就可以选 qt 、 tk 、 wx 或者操作系统自己的实现比如 aqua 、 gtk (具体可能有差错,不太记得)。一些新的库则是用 HTML5 等。每一种实现具体的表达都不一样,但画出的图起来是类似的(都是矢量图)。他们一般都可以兼容导出 eps 、 svg 之类的通用格式,可以从了解这些通用格式开始。
linhua
2017-01-28 19:23:34 +08:00
图像不是存在 图像文件(bmp, jpg , png , svg 等格式)中的吗。可以是位图,也可以是矢量图。但最终绘制在显示屏上的都是以位图的形式,因为显示屏是基于像素的。 你可以当成两步,先用 matlab , python 程序生成这些 图像文件 ,然后用 图像显示软件(看图软件)来在显示屏上展示图像文件。可能 4 楼中说的 绘图的后台 就是 “看图软件”
eccstartup
2017-01-28 20:10:11 +08:00
@canautumn
@linhua 我比较关心如何显示在屏幕上的问题。“看图软件”那部分
lll9p
2017-01-28 20:16:46 +08:00
@eccstartup 每个像素给一个颜色,不就画出来了吗。
learnshare
2017-01-28 20:17:37 +08:00
@eccstartup 矩阵嘛,(x, y, color)
xuboying
2017-01-28 20:26:41 +08:00
贝尔赛曲线?
misaka19000
2017-01-28 20:41:04 +08:00
@learnshare 不太理解你想问什么,如果是为什么显示器能显示出这些东西的话,使用的是 OS 提供的接口(系统调用),更本质的就是修改显存中的数据就可以了
canautumn
2017-01-29 03:14:51 +08:00
@eccstartup 那就 qt 、 tk 、 wx 、 aqua 、 gtk 、 HTML5 随便挑一个研究一下
linhua
2017-01-29 18:49:33 +08:00
应用最底层是使用 系统 API (绘图的 API ),可以操纵任意像素。 你可以研究一下, bmp 文件的存储格式,然后利用 Windows 的绘图 API ,将 bmp 图像文件,显示出来。 更低层的,就是 显卡驱动提供的函数,然后是 BIOS 固件提供的中断方法。 然后是 BIOS 固件提供的中断。
siriussilen
2017-02-01 20:03:28 +08:00
当然是调用显卡 API233333
想起了上学期用 C 画元跑自动机的图 23333

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/337252

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX