Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour « challenge » dans sujets.

  • Rechercher par étiquettes

    Saisir les étiquettes en les séparant par une virgule.
  • Rechercher par auteur

Type du contenu


Forums

  • Fonctionnement de ce site
    • Nouvelle règle pour les invités : plus d'écriture possible sans inscription
    • CADxp, comment ça marche?
    • CADxp, vos souhaits
    • Forum test
  • Emploi
    • Emploi, monde du travail
  • AutoCAD
    • AutoCAD 3D
    • AutoCAD 2020-2024
    • AutoCAD LT 2024
    • AutoCAD LT 2020-2023
    • AutoCAD 2019
    • AutoCAD LT 2019
    • AutoCAD 2018
    • AutoCAD LT 2018
    • AutoCAD 2017
    • AutoCAD LT 2017
    • AutoCAD avant 2017
    • AutoCAD LT avant 2017
    • Tutoriaux AutoCAD
    • AutoCAD, liste de souhaits
  • Autres logiciels de CAO
    • Microstation
    • IntelliPlus, IntelliCAD, CadIdesk
    • ZWCAD
  • Architecture, Bâtiment
    • Revit
    • AutoCAD Architecture
    • AutoCAD MEP
    • BIM
  • Mécanique
    • Inventor
    • SolidWorks
    • Creo (ex. Pro/Engineer)
    • Catia
  • SIG, Génie civil, Cartographie, VRD
    • Autodesk Map
    • VRD
    • Covadis
    • Infraworks 360
    • Mensura
    • AutoCAD Civil
    • Autopiste
    • SIG internet
  • Imagerie, animation, PAO, modélisation 3D
    • 3DSMAX
    • Création et retouche d'images
    • Sketchup
    • Autres logiciels d'infographie
    • Lumion 3D
  • Programmation
    • LISP et Visual LISP
    • VBA et VB
    • Personnalisation, macros, DIESEL
    • ObjectARX/DBX, C++, .NET, RealDWG
    • Programmer en s'amusant
    • Suggestions de développements
  • Trucs et astuces
    • AutoCAD trucs et astuces
    • Windows trucs et astuces
  • Matériel CAO
    • Ordinateurs
    • Périphériques d'entrée
    • Périphériques de sortie, impression
  • Divers
    • CAO, généralités
    • Echanges de fichiers
    • Organisation du travail
    • Visualisateurs, annotation
    • Pause café
    • Bibliothèques de composants
    • Formation
  • Logiciels connexes
    • Devis, métré, estimation, quantitatif
    • Calculs et simulation
  • Forums métier
    • Bâtiment
    • Infrastructures

Calendriers

Il n’y a aucun résultat à afficher.

Blogs

Il n’y a aucun résultat à afficher.


Rechercher les résultats dans…

Rechercher les résultats qui contiennent…


Date de création

  • Début

    Fin


Dernière mise à jour

  • Début

    Fin


Filtrer par nombre de…

Inscription

  • Début

    Fin


Groupe


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. bseb67

    vla-select

    pfoui, dommage que ca marche pas. L'idée de de parcourir les présentations était aussi mon option de secours ;) merci quand même. Pour le challenge 30, j'ai déjà un peu travailler sur ça, si j'ai le temps j'attaquerai à entre midi et deux.
  2. Bonjour à toutes et tous, Neptune38 avait proposé gracieusement de partager ses persos ici,... Tu peux alors t'inspirer de la syntaxe. Tu peux sinon te rendre dans l'aide AutoCAD dans => Dans la recherche de forum, tu trouveras également plein de posts sur ce sujet,... Un post "challenge" à consulter également,...
  3. (gile)

    Challenge 29

    Salut, Ma réponse est la même que celle d'Evgeniy. (defun list_up (ind lst) (cond ((or (null ind) (null lst)) lst) ((= 0 (car ind)) (cons (car lst) (list_up (cdr (mapcar '1- ind)) (cdr lst))) ) ((= 1 (car ind)) (cons (cadr lst) (list_up (cdr (mapcar '1- ind)) (cons (car lst) (cddr lst))) ) ) (T (cons (car lst) (list_up (mapcar '1- ind) (cdr lst)))) ) ) Je l'avais donnée ici. C'est là que j'ai piqué cette idée de challenge. Eh Tramber, tu as eu tout le week-end !...
  4. Salut, Encore un petit challenge de manipulation de listes. Il s'agit, dans une liste de faire monter d'un rang les éléments spécifiés dans une liste d'indices triés. Exemples : (setq lst '("a" "b" "c" "d" "e" "f")) (list_up '(2 3) lst) retourne ("a" "c" "d" "b" "e" "f") (list_up '(0 3) lst) retourne ("a" "b" "d" "c" "e" "f") (list_up '(0 1 4 5) lst) retourne ("a" "b" "c" "e" "f" "d") ou avec une liste de chiffres (setq lst '(0 1 2 3 4 5)) (list_up '(1 3) lst) retourne (1 0 3 2 4 5) (list_up '(0 2) lst) retourne (0 2 1 3 4 5) (list_up '(3 4 5) lst) retourne (0 1 3 4 5 2)
  5. Bonjour, la sous routine dont le code est ci-dessous me permet de sortir une catégorie d'une chaine de caractères, elle fonctionne bien mais pour mettre a jour la liste des prénoms par exemple c'est un peu dur pour des non programmeurs, c'est pourquoi je souhaiterais les mettre dans un bloc notes sous la forme : ("mot1" . "catégorie") ("mot2" . "catégorie") ("mot3" . "catégorie") ........................................ ("motN" . "catégorie") ou alors dans un fichier Excel (Open office Calc) ou mieux dans un fichier mdb d'access via les fonctions ADOLisp. Quelles seraient pour vous le choix le plus judicieux et le plus facile à coder ? C'est une sorte de challenge ! Merci, ;--------------------------------------------------------------- ;;; sous-fonction permettant de vérifier la catégorie d'un mot suivant les listes de contrôle et de renvoyer cette catégorie dans le programme principal (defun verification_mot (mot_a_verifier / outpout_categorie) (setq LISTE_PRENOMS (list "A." "Adam" "Adolphe" "Adrien" "Aimee" ............................ "Yves" "Yvonnick" "Zacharie" "Zenaide" "Hilarion" "E." "Ermangarde")) (setq LISTE_TYPES (list "Allée" "Avenue" "Bosquets" "Boulevard" "Canal" "Carré" ............................ "Terrain" "Villa" "Village")) (setq LISTE_ARTICLES (list "d'" "de" "de" "de" "l'" "de" "la" "des" "du" "l'" "le" "au" "aux")) (setq LISTE_TITRES (list "Abbé" "Abbe" "Amiral" "Capitaine" ............................ "Sous-Lieutenant" "Sous_Lieutenant")) (setq LISTE_PARTICULES (list "D'" "De" "De" "L'" "De" "La" "Des" "Du" "L'" "La" "Le")) (setq LISTE_TEXTES (list "et" "Et" "Dit" "DIT" "dit")) (cond ((vl-position mot_a_verifier LISTE_PRENOMS) (setq outpout_categorie "PRENOM")); fin member dans LISTE_PRENOMS ((vl-position mot_a_verifier LISTE_TYPES) (setq outpout_categorie "TYPE_VOIE")); fin member dans LISTE_TYPE ((vl-position mot_a_verifier LISTE_ARTICLES) (setq outpout_categorie "ARTICLE")); fin member dans LISTE_ARTICLE ((vl-position mot_a_verifier LISTE_TITRES) (setq outpout_categorie "TITRE")); fin member dans LISTE_TITRE ((vl-position mot_a_verifier LISTE_PARTICULES) (setq outpout_categorie "PARTICULE")); fin member dans LISTE_PARTICULE ((vl-position mot_a_verifier LISTE_TEXTES) (setq outpout_categorie "TEXTE")); fin member dans LISTE_TEXTE (T (setq outpout_categorie "INCONNU")) ); fin cond outpout_categorie ) ; fin defun verification_mot [Edité le 12/11/2009 par fabcad]
  6. Hello En voilà un challenge! concret en plus. Je vais faire une proposition qui reprend le même principe à ta discussion Je suis sur que ElpanovEvgeniy va faire un truc de ouf en récursivité ;) (defun match_replace (string pattern target / l_str l_pat l_trg n tmp l_rv) (cond ((and (eq (type string) 'STR) (eq (type pattern) 'STR) (eq (type target) 'STR)) (setq l_str (vl-string->list string) l_pat (vl-string->list pattern) l_trg (vl-string->list target) ) (while l_str (repeat (setq n (length l_pat)) (setq tmp (cons (nth (setq n (1- n)) l_str) tmp)) ) (cond ((equal tmp l_pat) (setq l_rv (append (reverse l_trg) l_rv)) (repeat (1- (length l_pat)) (setq l_str (cdr l_str))) ) (T (setq l_rv (cons (car l_str) l_rv)) ) ) (setq l_str (cdr l_str)) (setq tmp nil) ) (vl-list->string (reverse l_rv)) ) ) ) exemple d'usage: (MATCH_REPLACE "\nAvec CadXp, on trouve les réponses,\nCadXp la référence?\nCadXp faites la différence" "CadXp" "FabCad") ou encore (MATCH_REPLACE "\nAvec CadXp, on trouve les réponses,\nCadXp la référence?\nCadXp faites la différence" "\n" "\t ")
  7. Salut, Le "contrôle du parallélisme" avait été le sujet de ce challenge.
  8. Tous les sujets, avec le nom "Challenge" j'appelle pour moi-même comme les leçons et j'apprends... C'est aussi le but :D @+
  9. Tous les sujets, avec le nom "Challenge" j'appelle pour moi-même comme les leçons et j'apprends...
  10. (gile)

    Challenge 28

    Salut, Je craignait que ce challenge n'offre que peu d'intérêt après la première réponse de Tramber qui est très proche de ce j'avais fait (avec vl-every) : (defun position (pat lst / cnt res) (setq cnt 0) (while lst (if (vl-every 'equal pat lst) (if ( (setq res cnt lst nil ) (setq lst nil) ) (setq cnt (1+ cnt) lst (cdr lst) ) ) ) res ) La routine de Tramber est plus concise, mais curieusement un tout petit peu moins rapide (même en supprimant le (vl-position ...) inutile à mon avis). Patrick_35, c'est justement en pensant à faire une sorte de vl-string-search pour les listes que j'ai pensé à ce challenge. Sans utiliser vl-every, j'aurais écrit : (defun position (pat lst / cnt res) (setq cnt 0) (while lst (if (apply '= (cons T (mapcar 'equal pat lst))) (if ( (setq res cnt lst nil ) (setq lst nil) ) (setq cnt (1+ cnt) lst (cdr lst) ) ) ) res )
  11. Bonjour Voici un challenge concret. Étant susceptible de me rendre service aussi. J'ai commencé à plancher dessus. L'action de cette routine est de linéariser automatiquement les sommets successifs qui sont alignés (colinéaire). L'entité source est conservée, la nouvelle étant dessiné avec les paramètres courants de calque, couleur etc... D'après mes premiers tests cela a l'air correct à un détail près, les derniers segments aligné de la polyligne ne sont pas toujours supprimés. (Ouverture du challenge pour correction, ajout d'une option pour linéariser tous les X sommets...) ;Fonction l-coor2l-pt modifiée d'après une idée originale de Gilles Chanteau (gile) ;----------- (defun l-coor2l-pt (lst flag / ) (if lst (cons (list (car lst) (cadr lst) (if flag (caddr lst) 0.0)) (l-coor2l-pt (if flag (cdddr lst) (cddr lst)) flag) ) ) ) ;----------- (vl-load-com) (defun c:lxpedit ( / jspl nbr n AcDoc Space ent_name K l_pt a_ref nw_pl) (setq jspl (ssget '((-4 . " (-4 . " (0 . "POLYLINE") (-4 . " (-4 . "&") (70 . 112) (-4 . "NOT>") (-4 . "AND>") (0 . "LWPOLYLINE") (-4 . "OR>")) ) nbr -1 n 0 ) (cond (jspl (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) Space (if (eq (getvar "CVPORT") 1) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) ) (vla-StartUndoMark AcDoc) (prompt "\nRecherche des sommets concernés en cours ...\\") (repeat (sslength jspl) (setq ent_name (ssname jspl (setq nbr (1+ nbr))) K T) (setq l_pt (if (eq (vla-get-ObjectName (setq ename (vlax-ename->vla-object ent_name))) "AcDbPolyline") (l-coor2l-pt (vlax-get ename 'Coordinates) nil) (l-coor2l-pt (vlax-get ename 'Coordinates) T) ) ) (while K (cond ((eq n 0) (prompt "\rRecherche des sommets concernés en cours ...|") ) ((eq n 1) (prompt "\rRecherche des sommets concernés en cours .../") ) ((eq n 2) (prompt "\rRecherche des sommets concernés en cours ...-") ) ((eq n 3) (prompt "\rRecherche des sommets concernés en cours ...\\") ) ) (setq n (rem (1+ n) 4) lst_pt (list (setq a (car l_pt))) K nil) (while (cddr l_pt) (if (equal (angle a (cadr l_pt)) (angle a (caddr l_pt)) 1E-8) (progn (while (and (cddr l_pt) (equal (angle a (cadr l_pt)) (angle a (caddr l_pt)) 1E-8)) (setq l_pt (cdr l_pt)) ) (setq lst_pt (cons (setq a (cadr l_pt)) lst_pt) K T) ) (setq lst_pt (cons (setq a (caddr l_pt)) (cons (cadr l_pt) lst_pt)) l_pt (cdr l_pt)) ) (setq l_pt (cdr l_pt) K nil) ) (cond ((> (length lst_pt) 1) (setq a_ref (angle (cadr lst_pt) (car lst_pt))) (if (and (cdr l_pt) (equal a_ref (angle (car l_pt) (cadr l_pt)) 1E-8)) (setq l_pt (append (reverse (cdr lst_pt)) (cdr l_pt)) lst_pt (list (car l_pt))) (setq l_pt (append (reverse lst_pt) l_pt) lst_pt (list (car l_pt))) ) ) ) ) (setq nw_pl (vlax-invoke Space 'AddLightWeightPolyline (apply 'append (mapcar 'list (mapcar 'car l_pt) (mapcar 'cadr l_pt))))) (if (member (vla-get-ObjectName ename) '("AcDbPolyline" "AcDb2dPolyline")) (progn (vla-put-Normal nw_pl (vlax-3d-point (vlax-get ename 'Normal))) (vla-put-Elevation nw_pl (vlax-get ename 'Elevation)) ) (vla-put-Normal nw_pl (vlax-3d-point '(0 0 1))) ) (vla-put-Closed nw_pl (vlax-get ename 'Closed)) ) (vla-EndUndoMark AcDoc) (vlax-release-object Space) (vlax-release-object AcDoc) (princ (strcat "\n" (itoa (sslength jspl)) " entité(s) soumises à la commande. TERMINE !" ) ) ) (T (princ "\nPas d'entités conformes sélectionnées..!")) ) (prin1) ) NB: Cette routine SUPPRIME tous les segments courbes des polylignes. Code corrigé, TOUS les points colinéaires entre sommets sont supprimés. [Edité le 13/10/2009 par bonuscad]
  12. Salut, Ça fait longtemps qu'il n'y en pas eu, alors j'en propose un pas trop difficile. Il s'agit de faire une routine qui retourne la position d'une suite d'éléments dans une liste. Exemples : _$ (position '(3 1) '(3 1 3 3 4 2 1)) 0 _$ (position '(4 2 1) '(3 1 3 3 4 2 1)) 4 _$ (position '(4 1) '(3 1 3 3 4 2 1)) nil
  13. bonuscad

    deux couleur

    Il est vrai qu'on en a déjà parlé et évoqué ce genre de solution. L'ennui est qu'on génère 2 entités décalées et surtout ont ne sait plus après coup les extrémités à retenir comme exactes (si celles-ci ont leur importance) Tout cela pour en venir à une idée qui m'ai venue à l'esprit en regardant les PMAILLE. Je me suis posé la question, à savoir si il ne serait pas possible de créer par programmation une PMAILLE (une représentation un peu comme des maillons d'une chaine) et d'affecté (à chaque maillon, qui serait une face à 4 cotés) une couleur précise. J'avais essayé manuellement en lisp (et la commande PMAILLE est vraiment pas évidente) à faire 2 maillons successifs de couleur différente et cela à l'air de pouvoir se faire. Je pense que se serait un bon challenge, surtout pour les champions des fonctions récursives (vous voyez à qui je peux penser ;) ), pour mettre en place ces sommets de PMaille. Une seule entité avec des couleurs propre indépendamment de celle du calque. Par contre cela serait une entité complexe avec beaucoup de point de définition (faudrait pas en abuser sous peine que le dessin prenne une taille pharaonienne) Est ce que le jeu en vaut la chandelle?
  14. Patrick_35

    Purger

    Salut Sans 2010, difficile de juger, mais je pense qu'il faut faire une sélection pour effacer ces objets. Un challenge pour effacer les textes vides. Pour les lignes vides, regarde la propriété Length. @+
  15. bseb67

    Messenger intranet ....

    Salut, a mon avis net send est surement désactivé. c 'est une des premières choses qu'un admin fait sur un serveur. Nous on utilise atnotes, il permet de mettre des notes, alarmes sur ton pc, et d'envoyer des messages à d'autres pc sur le réseau, il faut activer dans réseau accepter messages entrants. Son seul défaut: prendre la main en pop_up, car il n'a pas d'info bulles d'arriver de message Patrick35=> je sentirai un bon challenge pour développer en lisp par le biais d'un fichier de communication, un mini chat sous totocad. :D Faut pas que j'en parle à ma chef, car elle me trouve déjà parano du lisp :cool:
  16. Yahaaaa! Un petit challenge :D . La première version est déjà faite, reste encore la liste sans sous-liste pour le resultat
  17. Bonjour Je viens d'avoir une idée de challenge Le but serait dans une liste de conserver que les chiffres. Exemple (1 2 "a" "b" (6.5 7 "z" "r") "f" (3 "q" (3 "r" 0) "d" 8.4) "g" 8 ("dd" ("jj" "nn") "tt") 9 ("zz" ("ww" "ze" (20 25)) "tt"))) donnerai (1 2 (6.5 7) (3 (3 0) 8.4) 8 9 (((20 25)))) Une autre de ramener tous les chiffres sur un seul niveau d'une liste Exemple (1 2 "a" "b" (6.5 7 "z" "r") "f" (3 "q" (3 "r" 0) "d" 8.4) "g" 8 ("dd" ("jj" "nn") "tt") 9 ("zz" ("ww" "ze" (20 25)) "tt"))) donnerai (1 2 6.5 7 3 3 0 8.4 8 9 20 25) A vos neurones ;) @+ ps : je pense que c'est un peu trop facile pour (gile) ;)
  18. http://img502.imageshack.us/img502/6532/designquestfj2.jpg Pour la troisième année consécutive, PTC organise un concours de conception international ouvert à tous les étudiants dont l’établissement est membre du Programme Éducation PTC et utilise Pro/ENGINEER. Pour être admissibles, les participants (groupe ou individu) doivent être inscrits dans un établissement actuellement membre du Programme Éducation PTC et parrainés par un enseignant. Inscrivez-vous dès maintenant! Pour plus d'informations : http:// www.ptc.com/go/challenge http://www.dcp-canberra.com/files/design/tim-austen01.jpg P.S. : N'oubliez pas de changer la langue en français : http://www.ptc.com / Worldwide Sites / French http://img183.imageshack.us/img183/5008/proengineerwf5simplefs4.jpg [Edité le 19/3/2009 par valimdj] [Edité le 19/3/2009 par valimdj]
  19. Invité

    Comptage et tri Liste

    Merci ;-) C'est super, avec les differentes routines posté dans les challenge j'ai trouvé mon bonheur
  20. Bon l'eau a coulé sous le pont, mais une discussion d'aujourd'hui me fais contribuer a cet ancien challenge (defun test (lst / el nw_lst) (foreach n lst (if (not (member (setq el (cons n (- (length lst) (length (vl-remove n lst))))) nw_lst)) (setq nw_lst (cons el nw_lst)) ) ) (vl-sort nw_lst '(lambda (e1 e2) (< (car e1) (car e2)))) )
  21. Bonjour, J'sais pas si ça répond au challenge, mais à ta question peut être Avec: (setq lst_el '(" Tasseau Longueur 1.23" " Tasseau Longueur 3.25" " Tasseau Longueur 1.23" " Tasseau Longueur 1.23" " Tasseau Longueur 1.23" " Tasseau Longueur 3.25" " Tasseau Longueur 4") nw_lst nil) (foreach n lst_el (if (not (member (setq el (strcat (itoa (- (length lst_el) (length (vl-remove n lst_el)))) n)) nw_lst)) (setq nw_lst (cons el nw_lst)) ) )
  22. Salut ! Un petit challenge pour t'aider ?
  23. Salut, Voilà pour la première demande, pour la seconde, ça pourrait faire l'objet d'un "challenge". ;; ZH (gile) ;; Sélectionne les objets présents dans l'espace courant d'après leurs "handle" (defun c:zh (/ space ss obj hlst olst kw i l) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))) (setq space (vla-get-Block (vla-get-ActiveLayout *acdoc*)) ss (ssadd) ) (sssetfirst) (initget 1) (setq hlst (getstring "\nEntrez les handles à sélectionner séparés par des virgules: ") hlst (str2lst hlst ",") ) (foreach h hlst (if (and (not (vl-catch-all-error-p (setq obj (vl-catch-all-apply 'vla-HandleToObject (list *acdoc* h) ) ) ) ) (equal (vla-ObjectIdToObject *acdoc* (vla-get-OwnerId obj)) space ) ) (progn (setq olst (cons obj olst)) (ssadd (vlax-vla-object->ename obj) ss) ) ) ) (if ss (progn (sssetfirst) (sssetfirst nil ss) (setq i -1 l (length olst) ) (while (or (initget "Suivant Précédent Tous") (setq kw (getkword "Zoom sur [suivant/Précédent/Tous] <S>: ")) (setq kw "Suivant") ) (if (= kw "Suivant") (setq i (rem (1+ i) l)) (setq i (if (minusp (1- i)) (1- l) (1- i) ) ) ) (if (= kw "Tous") (ZoomObject olst) (ZoomObject (list (nth i olst))) ) ) ) ) (princ) ) ;; ZoomObject Effectue un zoom sur les objets contenus dans la liste ;; ;; Argument ;; objlst : une liste de vla-object ;; ;; Variables ;; dir : normale du plan de la vue courante ;; ang : angle de la vue courante ;; 3x3 : matrice de transformation du SCG vers la vue courante (dimension 3) ;; 4x4 : matrice de transformation du SCG vers la vue courante (dimension 4) ;; ptlst : liste des points minimum et maximum des bounding-boxes des objets sélectionnés (SCG) (defun ZoomObject (objlst / dir ang 3x3 4x4 ptlst) (vl-load-com) (setq dir (trans '(0 0 1) 2 0 T) ang (- (getvar "viewtwist")) 3x3 (mxm (mapcar '(lambda (x) (trans x 0 dir)) '((1 0 0) (0 1 0) (0 0 1)) ) (list (list (cos ang) (- (sin ang)) 0) (list (sin ang) (cos ang) 0) '(0 0 1) ) ) 4x4 (append (mapcar '(lambda (v o) (append v (list o)) ) 3x3 '(0 0 0) ) (list '(0 0 0 1)) ) ) (foreach obj objlst (vla-TransformBy obj (vlax-tmatrix (trp 4x4))) (vla-getBoundingBox obj 'minpt 'maxpt) (vla-TransformBy obj (vlax-tmatrix 4x4)) (setq ptlst (cons (vlax-safearray->list minpt) (cons (vlax-safearray->list maxpt) ptlst) ) ) ) (vla-ZoomWindow (vlax-get-acad-object) (vlax-3d-point (mxv 3x3 (apply 'mapcar (cons 'min ptlst)))) (vlax-3d-point (mxv 3x3 (apply 'mapcar (cons 'max ptlst)))) ) ) ;; str2lst ;; Transforme un chaine avec séparateur en liste de chaines ;; ;; Arguments ;; str : la chaine à transformer en liste ;; sep : le séparateur (defun str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) ) ;; transpose une matrice -Doug Wilson- (defun trp (m) (apply 'mapcar (cons 'list m)) ) ;; Applique une matrice de transformation à un vecteur -Vladimir Nesterovsky- (defun mxv (m v) (mapcar '(lambda (r) (apply '+ (mapcar '* r v))) m) ) ;; Multiplie (combine) deux matrices -Vladimir Nesterovsky- (defun mxm (m q) (mapcar '(lambda (r) (mxv (trp q) r)) m) )
  24. Re, Sur TheSwamp.org : Le challenge "Triangulation" (C++) Le LISP d'Evgeniy dans un autre sujet sur le forum LISP
  25. C'est sur, mais le temps d'exécution reste honorable. D'ailleurs il y a un fichiers test de 100000 point juste avant le code (points en 2D, mais cela ne change pas grand chose je pense). C'est pas immédiat, mais le résultat est au bout. (y a même une barre de progression avec le pourcentage) J'avais eu l'occasion de tester un code de (Danielle Piaza, je crois) mais sont code arrivait a buger, les triangles étaient mal équilibrés (triangle avec des angles en sifflet) et le temps d'exécution rien à voir. Le seul truc qui manque pour que ce code soit parfait, est que l'on ne peut pas appuyer la triangulation sur des lignes de rupture de pente. Mais là c'est un autre challenge... Déjà qu'un code aussi condensé arrive à un aussi bon résultat, m'épate.
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité