I am stuck vector related problem.
I need to find a perpendicular vector(V) of fixed lentgh say 20 to other Normal vector(N) whose lentgh is unknown only direction.
for N and V I know intersecting co-ordinates. all this is happening in 3D space
After finding the perpendicular vector (V) I need to rotate that around every 15 degree to make a circle.
I want to do the thing shown in Image.
Algorithm Image (Point Signatures: A New Representation for 3D Object Recognition)
Edit I have calculated new values on the basis of normal vector being
(0.121881, 0.572628, -1.636642)
I found unit vectors
a = (0.070118, 0.941570, 0.329436)
e = (0.070118, 0.329436, -0.941570)
vector t = (0.069774, 0.839384, 0.037374)
normalized t = b1 = (0.082758, 0.70769, 0.03151)
b2 = (0.676719, -0.080131, 0.022358)
and after plotting all that stuff it look something like [i.stack.imgur.com/0PGM0.png] , the selected red line is the normal to the surface.
@Nominal-Animal's answer is probably right, but I wanted to warn you:
If you want the formula that generates the perpendicular vector to be continuous (e.g. give perpendiculars that are close to each other for the original vectors that are close to each other), then there is no solution.
You can easily create solutions that have 2 "special" points where the continuous perpendicular function turns zero vector (which is not perpendicular to anything). You can patch these points with some other non-zero perpendicular vector.
There can be a solution with only one "special point". Again, it can be patched, but the function won't be continuous at that point.
The fully continuous mapping is impossible. See Hairy ball theorem - Application to computer graphics
An example solution that has 2 special points:
The cross product of any two non-zero and non-collinear vectors is non-zero and perpendicular to both of those vectors. Thus, just take the cross product of your normal vector with some other constant vector e.g. $(0,0,1)$.
$\vec{N}(x,y,z) \times (0,0,1) = \vec{P_1}(y,-x,0)$.
For rotated vectors you'd need another perpendicular vector:
$\vec{N}(x,y,z) \times \vec{P_1}(y,-x,0) = \vec{P_2}(xz, yz, -x^2-y^2)$.
And finally here is the formula for the rotated vectors.
$\vec{p}_i = \vec{o} + r \frac{\vec{P_1}}{|\vec{P_1}|} \cos\left(\frac{2 \pi i}{n}\right) + r \frac{\vec{P_2}}{\vec{P_2}} \sin\left(\frac{2 \pi i}{n}\right)$ where $n$ is the number of rotated vectors you want (n = 24 for the angle of 15 degrees between vectors); $i$ is the rotated vector index which goes from $1$ to $n-1$.
P.S. As I mentioned, this formula fails for 2 special points/directions. In particular, for the normal vectors that only have a z coordinate non-zero $(0,0,z)$, you'd need to provide some special result answer.