Reputation: 408
I have made the following graph using matplotlib in python.I have also attached the code I used to make this.
The code for the arena
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")
So, I want to implement a similar arena using C++ and I have no idea how to do it? I researched I got to know something about qtplot again I dont know much about qt. So, is qtplot the only way or there are some easier way. Please tell me how to implement this in C++.
Upvotes: 7
Views: 60698
Reputation: 15504
An excellent C++ library to plot graphs is ROOT. It was developed by CERN for physicists. It also includes a C++ shell, in case you want to use C++ with an interactive prompt.
You can find the documentation, download links, and lots of examples, at https://root.cern/.
There is also a stackoverflow question by someone trying to plot points: CERN ROOT: Is is possible to plot pairs of x-y data points?
Upvotes: 6
Reputation: 5935
You could try https://github.com/lava/matplotlib-cpp, which looks like it is just a wrapper around matplotlib anyway, so you are still calling/using Python and matplotlib in the end. With this you probably can copy your code nearly verbatim to "C++".
Upvotes: 13
Reputation: 130
Make graphs is C++ is not as easy as in python. So if you can keep using your python code. Otherwise you can use OpenGL. Here there is the tutorial: http://www.opengl-tutorial.org/. And I think this is what you need: https://en.wikibooks.org/wiki/OpenGL_Programming/Scientific_OpenGL_Tutorial_02
Upvotes: 2