Jump to content

VDH-Bruno

Membres
  • Content Count

    1 034
  • Joined

  • Last visited

  • Days Won

    12

VDH-Bruno last won the day on March 30

VDH-Bruno had the most liked content!

Community Reputation

32 Excellent

About VDH-Bruno

  • Rank
    ceinture noire 2em dan

Profile Information

  • Gender
    Not Telling
  1. Bonsoir Rapidement pour le jeu et ne pas taper dans les 6 façons différentes en "pur AutoLISP", pas forcément la façon la plus efficiente sur de grande lwp car la fonction ne mémorise pas la liste de définition de l'entité, mais y accède pour chaque sommet extrait. (defun Get-pt-list (e / f) (defun f (i / pt) (if (setq pt (vlax-curve-getPointAtParam e i)) (cons pt (f (1+ i))) ) ) (f 0) ) @Luna Bien que la fonction travail indifféremment avec un argument au format vla-objet ou ename, au jeu des comparaisons elle gagnera à être regardé avec un argument au format e
  2. Bonjour, Oui je connais ces messages, pour cette raison j'ai mauvaise conscience à proposer la moindre ligne de code sur ce challenge.
  3. Merci pour la façon suivante de lancer le traitement: Je suis assez d'accord, par contre pour la partie qui suit je suis encore mitigé: J'ai essayé des truc plus ou moins farfelu dans le WE, pour en faire quelque chose d’élégant: factorisation, récursion mutuelle, utilisation de set, imbrication de or et and etc.. A par obscurcir et compliquer le code j'ai pas réussi à traiter cette partie mieux que ça..
  4. Bonjour, Je reviens sur le sujet pour proposer mon 2ème jet de la fonction QuickHull Dans cette deuxième version j'ai voulu garder l'esprit du premier algorithme, à savoir la fonction filtre les points à droite de la droite (ptA ptB), puis filtre les points à droite de la droite (ptB ptC) parmi les points à gauche de la droite (ptA ptB). De ce fait les aires algébriques à droite de la droite (ptA ptB) ne sont calculé qu'une seule fois. Voilà j'ai essayé pour le jeu d'allier l'efficience (avec un gain modeste), sans trop sacrifier la concision des lignes de code donné par (gile)
  5. Bonjour @(gile), Pour le retour (et la petite blague), en détaillant hier soir le fonctionnement de ton QuikHull, je me suis aperçu que tu générais des sommets superposés, graphiquement tu as le bon nombre de coté, mais trop de sommets. Pour t'en convaincre en exemple sur polygone convexe à 11 cotés généré avec la commande test, la ligne de code suivante m'indique 17 sommets.... _$ (cdr (assoc 90 (entget (car (entsel))))) 17 J'ai mis un moment à comprendre, mais c'est tout bête, c'est la variable pt qui fait nous un effet de bord... dans le code tu as omis de la loca
  6. Bonjour @didier Bien que je sois intimement convaincu que tu trouveras (à raison) toujours plus d'inspiration dans les lignes de (gile) que dans les miennes, si des fois il y en a une ou deux qui te conviennent en ce qui me concerne tout ce qui est sur les forums est libre de droit, être repris est toujours une forme de reconnaissance😉 Pour une date de dépôt je suis plus mitigé, l'esprit d'un challenge est un jeu entre vitesse d'écriture et optimisation des lignes de code, personnellement je n'ai pas d'état d'âme à poster rapidement si je pense que la solution n'est pas optimal (car
  7. @(gile) Clap clap clap, chapeau bas, pour la concision je ne crois pas que l'on puisse faire mieux, l'air algébrique (qui donne la position, la surface et le donc point le plus éloigné) "mais c'est bien sur" cela ne m'a même pas effleuré l'esprit, pourtant je le sais et je l'ai écrit donc sur ce coup je m'en amuse (c'est pas faute d'avoir réfléchi pour le faire en un passage, set était bien présent en tête si je trouvais ce moyen😉). Je n'ai aucun regret je m'étais imposé 1h pour écrire le quickHull, j'ai débordé cela m'a pris 1h45, c'est le maximum que je pouvais faire dans le temps impar
  8. @didier, Oui bravo, ça fonctionne, tu as implémenté l’algorithme de Graham's il me semble, il te reste encore a implémenter l'algorithme Quickhull
  9. @(gile)Je ne doute pas de la concision de ta version, que je détaillerai avec sourire en me disant "mais c'est bien sur", pour un second jet c'est compliqué, je suis entrain de pisser du trait en mode dessinateur d’exécution, pour la quarantaine de bonhommes qui attendent lundi dans l’atelier ferraillage/coffrage, les joies du télétravail (le travail qui s'invite à la maison, et non le travaille devant la télé comme certains seraient tenté de croire). @didier Pas de soucis j'ai beaucoup d'humour, je ne me suis pas sentie visé d’ailleurs celle-ci: lu comme ça, cela
  10. Désolé Didier, mais comme je voyais pas mal de commentaires, j'ai cru à tord que le challenge était un peu bloqué... Alors je m'y suis attelé ce matin. Amicalement aussi A+ Bruno
  11. Bonjour, Rapidement un premier jet: (defun Quickhull (lst / P Q position cut-pts getPtH HalfConHull) ;; Position d'un point C par rapport à une droite orienté (AB): 0 = sur la droite; 0 < au-dessus; 0 > au-dessous (defun position (A B C) (- (* (- (car B) (car A)) (- (cadr C) (cadr A))) (* (- (cadr B) (cadr A)) (- (car C) (car A))) ) ) ;; coupe une lite de points en 2 par rapport à un segment ->( (liste des points dessus)(liste des points dessous)) (defun cut-pts (A B lst haut bas) (cond ((null lst) (list haut bas)) ((minusp (position A B (car
  12. Oui tout à fait, merci d'avoir complété et élargie mon propos que j'avais limité aux versions impératives qui ont des versions récursives équivalentes, pour essayé de montrer que passer par un raisonnement par récurrence, peut aussi permettre de reformuler la résolution de façon plus optimal même pour une écriture dans un style plus impératif. (Ps:@(gile): Jolie démonstration pour le append, cons)
  13. Bonjour, @Fraid append est moins efficient que un reverse + cons, j'ai beaucoup de mal à retrouver mes sujets sur ce forum, mais nous en avions déjà fait une démonstration dans de précédent challenges, pour les testes sur de grande liste les versions impératives qui utilisent reverse sont meilleurs que leurs versions récursives. @(gile)Bien que le (eval fun) soit exécuté à chaque appel, je préfère utiliser la "fonction lambda enveloppante" en bibliothèque (pas en challenge) par goût et par clarté avec l'habitude ce style de structure est devenu idiomatique, au premier coup d’œil, je
  14. Bonjour, Visiblement il n’y a pas eu foule, ça ne me semblait pas un exercice trop dur à relever (j’espère tout de même qu’il y en a quelques-uns qui ont tenté de plancher de leurs coté). Dans ce challenge outre le fait que la fonction soit d’ordre supérieur (c’est-à-dire qu’elle accepte une fonction en argument), la fonction en argument comparant les éléments 2 à 2, l’éventuelle difficulté dans le traitement, c’est de vouloir construire la liste en retour par la queue (au moyen d’append), alors qu’une liste se construit plus simplement par la tête (avec cons)… En récursif dans
  15. Re, Oui c'est plus dans cette direction, en trouvant le moyen de tous les supprimer...
×
×
  • Create New...