IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Quadrilatère de Watt


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Décembre 2013
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 10
    Par défaut Quadrilatère de Watt
    Bonjour à tous,

    J’essaie depuis un bout de temps (et la je commence à ne plus rien y comprendre) d'afficher un simple quadrilatère convexe sur Matlab.
    Je connais la longueur de 3 côtés du quadrilatère (2 de ces côtés opposés étant de même longueur = définition du quadrilatère de Watt), ainsi que les 4 angles définis par rapport à l'une des diagonales du quadrilatère. Un rapide schéma sous paint sera sans doute plus parlant...
    J'exprime les coordonnées cartésiennes des 4 points dans un repère et les affiches.... mais les angles ne sont pas vérifiés... pourtant c'est simple cos, sin et Al-Kashi....

    Pour trouver mon erreur j'essaie d'afficher un parallélogramme... mais je n'obtiens pas celui-ci.

    Quelqu'un peut-il me venir en aide et m'expliquer ce qui ne va pas dans ma façon de faire, svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    function mapping4
    global long lat eta xi m n alpha beta
     
    FigHandle4 = figure(4);
    set(FigHandle4, 'units','normalized','outerposition',[0 0 1 1]);
    a1 = axes('unit', 'normalized', 'position', [0 0 1 1]); 
     
     
    alpha =45; beta = 10;
    lat = 50;long = 100;
    eta = 2;xi = 2;
     
    % Points and angles (angle in radians)
     
    m=0;n=0;
    u=0;v=0;
     
    d =sqrt((lat^2)+(long^2)-2*lat*long*cosd(180-alpha-beta));
     
    % Sample data
    for j=1:1:eta
        for i=1:1:xi
        xv=[m m+lat m+d*cosd(alpha) m+long*cosd(alpha+beta) m];  %:calim2: C'est ici que ce n'est pas bon
        yv=[n n n+d*sind(alpha) n+long*sind(alpha+beta) n];  %:calim2: et ici
     
        diagx=[m m+d*cosd(alpha)];
        diagy=[n n+d*sind(alpha)];
        m = xv(1);
        n = yv(1);
     
        % Tx matrices
        first = [m n;m n;m n;m n;m n];
        third = [m n;m n];
     
        % Use homogenous coords
        mp_quad(:,1) = xv';
        mp_quad(:,2) = yv';
        mp_diag(:,1) = diagx';
        mp_diag(:,2) = diagy';
     
        % Calculate (note because we premultiply)
        rotated_quad = (mp_quad-first)'+first';
        rotated_diag = (mp_diag-third)'+third';
     
        hold on
        axis equal
        grid on
     
        plot(rotated_quad(1,:), rotated_quad(2,:),'color',[0 0 0])
        hold on
        axis equal
        grid on
        grid minor
        plot(rotated_diag(1,:), rotated_diag(2,:),'--','color',[0 0 0])
        axis equal
        grid on
        grid minor
     
            if i == 1 && j==1
                aAB = (yv(2)-yv(1))/(xv(2)-xv(1));
            end
            if i == 1
                aDE = (rotated_quad(2,3)-rotated_quad(2,4))/(rotated_quad(1,3)-rotated_quad(1,4));           
                u=rotated_quad(1,4);
                v=rotated_quad(2,4);
            end
     
            m=rotated_quad(1,2);
            n=rotated_quad(2,2);
        end
        m = u;
        n = v;
     
    end

    Cordialement,
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Transformation quadrilatère --> rectangle
    Par jokoss dans le forum Traitement d'images
    Réponses: 22
    Dernier message: 07/08/2008, 14h52
  2. Réponses: 3
    Dernier message: 05/08/2007, 20h14
  3. sommets consécutifs d'un quadrilatère
    Par jlf dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 19/02/2007, 18h03
  4. Programme qui affiche un quadrilatère droit
    Par superdj dans le forum Pascal
    Réponses: 19
    Dernier message: 27/11/2006, 23h51
  5. Réponses: 4
    Dernier message: 18/09/2005, 12h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo