用 C++ 绘制图形

SHI*_*HOO 4 c++ python graph

我在 python 中使用 matplotlib 制作了以下图表。我还附上了我用来制作这个的代码。在此处输入图片说明

竞技场代码

import matplotlib.pyplot as plt
import matplotlib.patches as patches

obs_boundary = [
            [0, 0, 10, 600],
            [0, 600, 900, 10],
            [10, 0, 900, 10],
            [900, 10, 10, 600]
        ]
obs_cir_own = [
    [50,500,10],
    [100,300,10],
    [240,240,10],
    [300,400,10],
    [190,50,10]

        ]
obs_cir_opp = [
            [700, 420, 10],
            [460, 200, 10],
            [550, 500, 10],
            [670, 70, 10],
            [800, 230, 10],
            [600,300,10]
        ]
fig, ax = plt.subplots()

for (ox, oy, w, h) in obs_boundary:
    print(ox, oy, w, h)        
    ax.add_patch(
                patches.Rectangle(
                    (ox, oy), w, h,
                    edgecolor='black',
                    facecolor='black',
                    fill=True
                )
            )

for (ox, oy,r) in obs_cir_own:
            ax.add_patch(
                patches.Circle(
                    (ox, oy), r,
                    edgecolor='black',
                    facecolor='green',
                    fill=True
                )
            )
for (ox, oy, r) in obs_cir_opp:
            ax.add_patch(
                patches.Circle(
                    (ox, oy), r,
                    edgecolor='black',
                    facecolor='red',
                    fill=True
                )
            )
 
plt.plot(50,50, "bs", linewidth=30)
plt.plot(870, 550, "ys", linewidth=30)           
name='arena'
plt.title(name)
plt.axis("equal")
Run Code Online (Sandbox Code Playgroud)

所以,我想使用 C++ 实现一个类似的领域,但我不知道该怎么做?我研究了一下,我又对 qtplot 有所了解了,但我对 qt 知之甚少。那么,qtplot 是唯一的方法还是有一些更简单的方法。请告诉我如何在 C++ 中实现它。

Jan*_*asa 7

您可以尝试https://github.com/lava/matplotlib-cpp,它看起来只是 matplotlib 的包装器,因此您最终仍在调用/使用 Python 和 matplotlib。有了这个,您可能可以几乎逐字复制您的代码到“C++”。


Ste*_*tef 6

ROOT是一个优秀的用于绘制图形的 C++ 库。它是由 CERN 为物理学家开发的。它还包括一个 C++ shell,以防您想通过交互式提示使用 C++。

您可以在https://root.cern/找到文档、下载链接和大量示例。

有人尝试绘制点时还提出了一个 stackoverflow 问题:CERN ROOT: Is is possible toplotpairs of xy data point?