@TempodiBasic Very nice try... Look like virus has become very angry. Ok, jokes apart.
You will soon learn all 3D in OpenGL. Its not that too hard.
Okay, so lets talk about your modification to the code.
1. You created another variable of the type COVID19 and initialize its property. Like (r, pos.x, etc). This is fine.
2. The real issue is in SUB _GL() : But why?
You know, I'm using a command _glTranslatef. But what this do? Well... The value you pass it to is added to the current origin.
In OpenGL, the initial origin is center of the screen. That is the reference point. In coordinates, you can say origin is (0,0,0).
Now, if you call _glTranslatef 0.5,0.5,0. Origin will become (0+0.5,0+0.5,0) or (0.5,0.5,0).
If you again call _glTranslatef -0.5,0.5,0. Origin will become (0.5+(-0.5),0.5+0.5,0+0) or (0,1,0).
You have clearly noticed that in second calling, the positions were not added in (0,0,0) but in (0.5,0.5,0). This is because
(0.5,0.5,0) was our current origin before calling _glTranslatef for second time. As you can see, I already said this above.
And in your code you are doing the same thing. The virus is being drawn, but it inside the my virus, because its radius is small.
In order to render 2 viruses, you need to do this -
(i) translate the origin to my virus position by _glTranslatef
(ii) Do all the drawing stuff
(iii) Return to the our original origin (0,0,0). You can return to the original origin by again calling _glTranslatef with negative sign on the position of my virus. This will make the values to cancel out and the origin is again (0,0,0)
(iv)Now, translate the origin to your virus as you did in your code with _glTranslatef
(v)Do all the drawing stuff for your virus, as you did in your code.
And this must work.
As an exercise, I'm waiting for your new code with above modification.
OMG: This is the longest post I've ever written. :D
PS: About the weird movement of your virus. That's because, since the origin in your code neither matches virus nor viru, the rotation is done from other origin.