Contenu principal

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

collisionCapsule

Géométrie primitive de collision de capsule

Depuis R2022b

    Description

    L'objet collisionCapsule est une géométrie de collision primitive de capsule définie par un rayon et une longueur. Le segment de ligne centrale de la capsule s'aligne sur son axe z. L'origine du cadre fixé au corps se situe au milieu du segment central de la capsule.

    Création

    Description

    CAPS = collisionCapsule(radius,length) crée une primitive de capsule avec le rayon spécifié radius et la longueur length. Les arguments radius et length définissent respectivement les propriétés Radius et Length .

    exemple

    CAPS = collisionCapsule(___,Pose=pose) définit la propriété Pose de la capsule sur pose, par rapport au cadre mondial.

    Propriétés

    développer tout

    Rayon des extrémités sphériques de la capsule, spécifié comme un scalaire positif. Les unités sont en mètres.

    Exemple : 2.5

    Longueur du segment de ligne centrale de la capsule, spécifiée comme un scalaire non négatif. Les unités sont en mètres.

    Remarque

    Ce n'est pas la longueur d'un bout à l'autre de la capsule. La longueur totale de la capsule est Length+2(Radius).

    Exemple : 4.5

    Pose de la capsule par rapport au cadre du monde, spécifiée comme une matrice de transformation homogène 4 x 4. Les unités sont en mètres.

    Exemple : trvec2tform([4 2 5])

    Fonctions d'objet

    checkCollisionVérifiez si deux géométries sont en collision
    convertToCollisionMeshConvertir la géométrie primitive de collision en géométrie de maillage de collision
    genspheresGenerate spheres along central line segment of capsule
    showAfficher la géométrie des collisions

    Exemples

    réduire tout

    Créez une capsule de collision avec un rayon de 2 et une longueur de 10. Visualisez la capsule.

    cCapsule = collisionCapsule(2,10);
    [~,p] = show(cCapsule);

    Générez des sphères aux ratios 0.0, 0.5 et 1.0 de la longueur de la capsule.

    spheres = genspheres(cCapsule,linspace(0,1,3));

    Affichez les positions des sphères.

    for i = 1:length(spheres)
        disp(tform2trvec(spheres{i}.Pose))
    end
         0     0    -5
    
         0     0     0
    
         0     0     5
    

    Réglez les alphas de la face et du bord de la capsule sur des valeurs faibles. Cela garantit que les deux sphères sont visibles lorsque vous les ajoutez à la figure.

    p.FaceAlpha = 0.4;
    p.EdgeAlpha = 0.01;
    hold on

    Affichez les sphères générées sur la capsule.

    cellfun(@show,spheres);

    Figure contains an axes object. The axes object with xlabel X, ylabel Y contains 4 objects of type patch.

    Capacités étendues

    développer tout

    Génération de code C/C++
    Générez du code C et C++ avec MATLAB® Coder™.

    Historique des versions

    Introduit dans R2022b

    développer tout