Handling vectors for double-bond graphics
I'm not sure I exactly know what you want, but such code is implemented in Avogadro and in other places.

The first thing to realize is that the unmarked atom in your plane is also your friend. You can calculate the plane of best fit using all 4 atoms.

You're making your work too hard, though. If you had a single bond, you simply draw a line or cylinder between atom i and j.

So the question at hand is how to displace two cylinders slightly in the plane of the bond. There are a few ways to do this. (Avogadro computes the plane of best fit for the molecule. Some people project towards the plane of the screen.)

My recommendation is to realize that atom k in your diagram is in one direction, and the unmarked atom is in the other. Let's call that other atom l. You can compute the vector between them: k - l. In practice, atom i is midway along this vector. So you want to displace the b vector in your diagram by a small amount, say 0.1 in one direction along that k - l vector, and 0.1 in the opposite direction.