如何【直接】用jl画图

如题,我不打算使用plots之类的包
那么能否能直接调用某个函数绘制像素之类的东西呢?
如果我(作为蒟蒻)的理解正确的话,这个东西或许可以用“接口”实现?但是绘图又提供了什么接口呢?

p.s.我在本站讨论区/英文社区讨论区/文档中搜索相关关键词都没有找到qaq

plots 是 general-purpose 绘图库前端,它主要提供常见易用的绘图模版。Makie,GR,pyplot 这些general-purpose 绘图库是对操作系统/显卡驱动提供的绘图接口(e.g. OpenGL,Vulkan,DX)的抽象。驱动是对硬件设备的抽象,按照某个标准,实现相应的API。

如果你的意思是调用一个函数直接点亮显示外设上的某个物理像素,那要看硬件厂商的驱动提不提供这个API。

如果你的意思是调用一系列的函数来点亮某个viewport中虚拟坐标系中的一个像素,那可以基于某个绘图API实现。

如果你的意思是调用某个函数绘制一个足够小的点,那可以查 general-purpose 绘图库的接口,看是否提供此功能。

1赞

首先,感谢帮助!

我说一下,这里“绘制像素”指的是在相对窗口的固定坐标点亮显示屏

这显然需要调用操作系统API,但是问题在于这么做具有可移植性。

举个例子,在C++中调用windowsapi画图很容易

#include<windows.h>
#include<conio.h>
HWND hwnd;
HDC hdc;
int main(){
    hwnd=GetConsoleWindow();
    hdc=GetDC(hwnd);
    for(int i=0;i<100;i++)for(int j=0;j<100;j++)SetPixel(hdc,i,j,0x0000FF);
    getch();
    return 0;
}

但是同样的代码,放到macos中不能用,亦或仅仅是windows更新了,所得的结果可能完全不同。

我所需要的是一个可直接调用的,可移植的函数,最好不需要下载别的东西(有亿点点占空间qaq)

顺便说一句,绘图库不也是用jl写的吗

https://github.com/Gnimuc/CImGui.jl

system agnostic 轻量级绘图库,像 SDL2,SFML,GLFW+OpenGL这些,甚至 header-only 的比如 sokol 都可以。

ok
sokol还是太大了
我觉得OpenGL+GLFW不错,
有问题我再回来qaq

京ICP备17009874号-2