Tracé polaire MATLAB

Ammar Ali 30 janvier 2023
  1. Tracé polaire MATLAB
  2. Tracé polaire 3D dans MATLAB
Tracé polaire MATLAB

Ce tutoriel discutera de la création d’un tracé polaire à l’aide de la fonction polarplot() dans MATLAB.

Tracé polaire MATLAB

Un tracé polaire est créé sur un système de coordonnées polaires qui est un système de coordonnées bidimensionnel qui indique la distance du point à l’origine et son angle par rapport à l’axe x.

On peut utiliser la fonction polarplot() de Matlab pour créer un tracé polaire. La syntaxe de base de la fonction polarplot() est ci-dessous.

polarplot(My_theta,My_rho)

La syntaxe ci-dessus créera un tracé polaire en fonction de l’angle de chaque point My_theta et de leur distance à l’origine stockée dans la variable My_rho. Si les deux entrées sont des vecteurs, elles doivent avoir des longueurs égales.

Si les deux entrées sont des matrices, elles doivent avoir la même taille et, dans ce cas, chaque colonne de la première matrice sera tracée par rapport à chaque colonne de la seconde matrice. Si une entrée est un vecteur et l’autre entrée est une matrice, la longueur du vecteur doit être égale à la longueur des colonnes ou des lignes présentes dans la matrice, et chaque colonne de la matrice sera tracée par rapport au vecteur.

Si une seule entrée de la fonction polarplot() est une matrice, la fonction tracera plus d’une ligne sur le tracé polaire avec des couleurs différentes. Par exemple, traçons deux vecteurs sur les coordonnées polaires en utilisant la fonction polarplot().

Voir le code ci-dessous.

clc
clear

My_theta = 0:0.01:2*pi;
My_rho = sin(2*My_theta).*cos(2*My_theta);
polarplot(My_theta,My_rho)

Production:

tracé polaire des vecteurs

Dans le code ci-dessus, nous avons utilisé deux vecteurs, et nous pouvons voir dans la sortie que le tracé montre l’angle et la distance des points à partir de l’origine. Nous pouvons également tracer plusieurs lignes de données sur un seul tracé en utilisant la fonction polarplot().

Nous devons passer des données pour chaque ligne sous forme de colonne dans les matrices, et la fonction polarplot() tracera la première colonne de la première matrice avec la première colonne de la deuxième matrice et ainsi de suite. Nous pouvons utiliser un vecteur pour cette dimension si nous voulons utiliser la même valeur pour une dimension, comme pour la distance ou l’angle.

Par exemple, traçons plusieurs lignes sur le même tracé polaire en utilisant un vecteur et une matrice. Voir le code ci-dessous.

clc
clear

My_theta = 0:0.01:2*pi;
My_rho1 = sin(2*My_theta).*cos(2*My_theta);
My_rho2 = cos(2*My_theta).*cos(2*My_theta);
My_rho = [My_rho1; My_rho2];
polarplot(My_theta,My_rho)
legend('data1','data2')

Production:

tracé polaire d’un vecteur et d’une matrice

Dans le code ci-dessus, nous avons créé deux vecteurs pour le rayon, puis les avons stockés dans une matrice sous forme de deux lignes, et la fonction polarplot() a tracé les deux lignes par rapport au même vecteur d’angle. Nous avons utilisé la fonction légende() pour ajouter des légendes au tracé en fonction des données.

Nous pouvons voir dans la sortie qu’il y a deux lignes dans le tracé polaire avec des couleurs différentes car la fonction polarplot() donne à chaque ensemble de données une couleur différente afin qu’il soit facile de les distinguer. Par défaut, l’angle est en degrés, mais on peut aussi le convertir en radians en utilisant la fonction deg2rad() de Matlab.

On peut aussi créer un tracé polaire en n’utilisant qu’un seul vecteur qui définira le rayon des points à partir de l’origine à l’aide de la fonction polarplot(). La fonction tracera les points du rayon par rapport à l’angle pris de l’intervalle 0 à 2pi à intervalles égaux.

Nous pouvons également définir les spécifications de la ligne comme le style de ligne, le marqueur et la couleur. Nous pouvons passer les trois arguments dans une seule chaîne et le passer dans la fonction polarplot() pour modifier les spécifications de ligne.

Nous pouvons définir le style de ligne sur une ligne continue à l’aide du caractère -, une ligne pointillée à l’aide du caractère --, une ligne en pointillé en utilisant le caractère :, et une ligne pointillée en utilisant le caractère -.. Le marqueur sera placé au-dessus des points de données, et nous pouvons les définir à l’aide de symboles tels que o pour cercle, * pour astérisque, d pour diamant, p pour le pentagramme, h pour le hexagramme, etc.

Nous pouvons définir la couleur de la ligne en utilisant le nom de la couleur ou la première lettre de la couleur, comme r pour le rouge, g pour le vert, etc. Par exemple, modifions les spécifications de ligne d’un tracé polaire à l’aide d’une seule chaîne.

Voir le code ci-dessous.

clc
clear

My_theta = 0:0.1:2*pi;
My_rho = cos(2*My_theta).*cos(2*My_theta);
polarplot(My_theta,My_rho,':*g')

Production:

modification des spécifications de ligne

Dans le code ci-dessus, nous avons utilisé la chaîne :*g pour modifier les spécifications de ligne dans laquelle le premier caractère définit le style de ligne sur pointillé, le deuxième caractère définit le marqueur sur astérisque et le troisième caractère définit la couleur de ligne sur vert.

Notez que si nous avons tracé plus d’un ensemble de données sur le tracé, les spécifications de ligne modifieront les spécifications de toutes les lignes présentes dans le graphique, et il pourrait devenir difficile de faire la distinction entre les ensembles de données ou les lignes.

Nous pouvons également modifier les propriétés du tracé en utilisant la paire nom-valeur dans laquelle nous devons transmettre le nom de la propriété sous forme de chaîne, puis nous devons transmettre sa valeur pour modifier cette propriété. Nous pouvons modifier les propriétés de Color, LineStyle, LineWidth, Marker, MarkerSize et MarkerFaceColor.

La propriété Color définit la couleur de la ligne, et nous pouvons passer une valeur de triplet RVB, un code de couleur hexadécimal, le nom de la couleur ou la première lettre du nom de la couleur. La propriété LineStyle définit le style de la ligne, et les styles de ligne disponibles sont décrits ci-dessus.

La propriété LineWidth définit la largeur de la ligne et, par défaut, sa valeur est définie sur 0.5, mais nous pouvons également la définir sur n’importe quel nombre positif. La propriété Marker définit le marqueur utilisé au-dessus des points de données et, par défaut, sa valeur est définie sur aucun, mais nous pouvons le définir à l’aide des symboles de marqueur décrits ci-dessus.

La propriété MarkerSize est utilisée pour définir la taille du marqueur et, par défaut, sa valeur est définie sur 6, que nous pouvons remplacer par n’importe quelle valeur positive. La propriété MarkerFaceColor définit la couleur de remplissage du marqueur, ou en d’autres termes, elle remplira les marqueurs utilisés dans le tracé et par défaut, sa valeur est définie sur none, mais nous pouvons la définir sur n’importe quelle couleur en utilisant son triplet RVB valeur, code hexadécimal ou nom de couleur.

Par exemple, modifions les propriétés mentionnées ci-dessus. Voir le code ci-dessous.

clc
clear

My_theta = 0:0.1:2*pi;
My_rho = cos(2*My_theta).*cos(2*My_theta);
polarplot(My_theta,My_rho,'Color','red','LineStyle',':','Marker','o','LineWidth',2,'MarkerSize',10,'MarkerFaceColor','green')

Production:

modification des propriétés du tracé

Nous pouvons également ajouter des axes personnalisés au tracé en les ajoutant comme premier argument dans la fonction polarplot(). Nous pouvons également définir les propriétés des axes comme la couleur de la ligne de rayon et du texte, les étiquettes de graduation des axes, etc.

Nous devons obtenir les axes actuels à l’aide de la commande gca, puis nous pouvons utiliser ces axes pour modifier les propriétés des axes. Nous devons ajouter un point après l’objet axes, puis ajouter le nom de la propriété, puis nous pouvons définir la valeur de la propriété après un signe égal.

Par exemple, changeons la couleur de la ligne de rayon dans un tracé polaire. Voir le code ci-dessous.

clc
clear

My_theta = 0:0.1:2*pi;
My_rho = cos(2*My_theta).*cos(2*My_theta);
polarplot(My_theta,My_rho)
x = gca;
x.RColor = 'red';

Production:

modification des propriétés des axes

Consultez ce lien pour plus de détails sur les propriétés des axes polaires.

Tracé polaire 3D dans MATLAB

Si nous voulons créer un tracé polaire dans un plan 3D, nous devons changer les coordonnées polaires en coordonnées cartésiennes car les coordonnées polaires n’ont que deux dimensions et nous avons besoin de trois dimensions pour créer un tracé 3D.

Nous pouvons utiliser la fonction pol2cart() pour convertir les coordonnées polaires en coordonnées cartésiennes, puis utiliser la fonction surf() pour créer un tracé de surface sur un plan 3D. L’algorithme utilisé pour convertir les coordonnées polaires en coordonnées cartésiennes est illustré dans l’image ci-dessous.

polaire 2 cartésien

Par exemple, convertissons les coordonnées polaires d’un tracé polaire en cartésien et créons un tracé 3D à l’aide de la fonction surf(). Voir le code ci-dessous.

clc
clear

My_theta = 0:0.1:2*pi;
My_rho = sin(My_theta);
t = meshgrid(linspace(0,2*pi,63));
[x,y,z] = pol2cart(My_theta, My_rho, t);
surf(x,y,z)

Production:

tracé de surface

Dans le code ci-dessus, nous avons utilisé trois entrées dans la fonction pol2cart(). La première entrée est le vecteur des angles, la seconde est le vecteur de la distance des points à l’origine et la troisième matrice est la grille sur laquelle nous voulons créer le tracé 3D.

Le tracé ci-dessus n’est pas lié à un tracé polaire car nous n’avons pas les dimensions d’angle et de rayon dans le tracé ci-dessus.

Dans un tracé polaire, nous pouvons voir l’angle et le rayon d’un point concernant l’origine, mais dans le tracé ci-dessus, ce n’est pas possible. Il n’est pas nécessaire de créer un tracé polaire 3D lorsque nous voulons uniquement obtenir des informations sur l’angle et le rayon d’un point ; on peut utiliser la fonction polarplot() pour un tracé polaire 2D.

Consultez ce lien pour plus de détails sur la fonction polarplot(). Consultez ce lien pour plus de détails sur la fonction surf() utilisée pour créer des tracés 3D.

Auteur: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Article connexe - MATLAB Plot