how to get x and y components of normal vector of curve like this??
Afficher commentaires plus anciens
I am trying to get the x and y components of the normal vector in the curve similar to the one attached here, any idea how to implement this ??
Réponses (1)
Satwik
le 24 Avr 2025
I understand that the goal is to compute the the X and Y components of the normal vector to a given curve. This can be achieved by following the steps given below:
- Parameterize the curve as ( (x(t), y(t)) ) or as discrete points ((x_i, y_i)).
- Compute the tangent vector at each point.
- Find the normal vector by rotating the tangent vector by 90°.
Here is an exmaple script you may refer to implement the above steps:
x = linspace(-2, 2, 100);
y = x.^2; % Example: parabola
dy_dx = gradient(y, x); % Numerical derivative
% Tangent vector: (1, dy_dx)
% Normal vector: (-dy_dx, 1)
norms = sqrt(dy_dx.^2 + 1);
nx = -dy_dx ./ norms;
ny = 1 ./ norms;
figure;
plot(x, y, 'b-', 'LineWidth', 2); hold on;
quiver(x, y, nx, ny, 0.3, 'r');
axis equal; grid on;
title('Parabola with normal vectors');
legend('Curve', 'Normals');
Here is an image of the resulting plot:

I hope this helps!
Catégories
En savoir plus sur Spline Postprocessing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!