Boutique Cinema 4D
Page 2 sur 2 PremièrePremière 12
Affichage des résultats 31 à 52 sur 52

Discussion: CALCUL DE VOLUME

  1. #31
    Dépendant
    Date d'inscription
    janvier 2003
    C4D version
    R14 Prime
    Messages
    449

    CALCUL DE VOLUME

    Pour creer un tableau avec 6 valeurs :

    var Tab = new(array, 6) ;

    et aprés tu stocke tes valeurs par :

    Tab[0] = .....
    .
    ....
    .
    Tab[5] = .....


    Sinon j'ai déjas réalisé la moitier du plug ici http://www.bubbles4d.com/index.php?topic=280.new#new

  2. #32

    CALCUL DE VOLUME

    Citation Envoyé par Kaerel
    mais je me melange les pinceaux entre les pointeurs, les tableaux et autre pointeurs de tableau :o Je fait une petite pose et je m'y replonge :art:
    Il me semble que les pointeurs et les tableaux se ressemblent au point d'etre complètement confondus. utiliser un tableau c'est manipuler des pointeurs. a toi de voir quelle solution tu choisis entre les deux et tiens toi y. courage :poucehaut:
    http://www.bohemond.fr<br /><br />Je ne suis pas exigeant,<br />Je me satisfais juste de ce qu'il y a de meilleur<br /><br />Core2duo E6300, 2GoRam, Gefroce 7600GT

  3. #33
    Pilier
    Date d'inscription
    juillet 2002
    C4D version
    R13 Visualize
    OS
    Win7 64bits
    Messages
    861

    CALCUL DE VOLUME

    ok, merci ca devrait me permettre d'avancer

    je m'y remet demain

    Merci encore Bonne nuit...
    Tout le monde savait que c'était impossible, est venu un con qui ne le savait pas et qui l'a fait!
    MarcelPagnol

  4. #34
    Big Boss Avatar de luistappa
    Date d'inscription
    mars 2003
    C4D version
    R19 Studio
    OS
    Windows 10
    Messages
    5 648

    CALCUL DE VOLUME

    Citation Envoyé par Kaerel
    Au risque de me repeter je vonfirme que c'est le produit scalaire entre la normale a la surface et le vecteur position de la surface qui fixe le signe du volume elementaire :roll:
    Zut effectivement c'était cela que je touchais du doigt sans pouvoir l'attraper :oops:
    Bon je vois que pendant que je ne suis pas là ça carbure dur!
    Ce n'est pas parce que les choses sont difficiles que l'on n'ose pas, c'est parce que l'on ose pas quelles sont difficiles. I7 4700MQ 2.4/3.2Ghz 16GO + W10

  5. #35
    Pilier
    Date d'inscription
    juillet 2002
    C4D version
    R13 Visualize
    OS
    Win7 64bits
    Messages
    861

    CALCUL DE VOLUME

    Citation Envoyé par MAJOUL
    j'ai déjas réalisé la moitier du plug ici http://www.bubbles4d.com/index.php?topic=280.new#new
    A parament je ne peux pas repondre sur l'autre forum, je n'ai pas trouvé comment m'inscrire :oops:

    Quoiqu'il en soit, le bout de code en question plante C4D au demarage :o et il n'est pas en version editable :? donc pour moi, cela ne marche pas

    Quand au tableu j'ai compris, en fait il existe trois type de tableau, les tableaux definis, des variable classique de grande taille, des tableaux de pointeur, dont le but est de limiter la place dans la pile et les tableaux dynamiques de taille modulables, qui eux sont completement basé sur les pointeur :roll:

    Dans le cas present un tableau de pointeur devrait faire l'affaire :?
    Tout le monde savait que c'était impossible, est venu un con qui ne le savait pas et qui l'a fait!
    MarcelPagnol

  6. #36

    CALCUL DE VOLUME

    Je sais pas si ca va te suffire mais en général une allocation dynamique de mémoire avec un malloc ca résout tous les problèmes. J'ai eu des cours de C et en ce moment je suis des cours de C++. donc si tu as des questions formule les précisément et j'essayerait de voir, quitte a poser des questions à ma prof. Qui sait, a plusieurs on y arrivera peut etre :?:
    Allez on y croit :bounce:
    http://www.bohemond.fr<br /><br />Je ne suis pas exigeant,<br />Je me satisfais juste de ce qu'il y a de meilleur<br /><br />Core2duo E6300, 2GoRam, Gefroce 7600GT

  7. #37

    CALCUL DE VOLUME

    ah je suis spécialisé dans le C++, donc je peux vous aider là dedans aucun probleme.je suis en train de développer un type mathématique rigoureux de matrice (basé sur la notion de vecteurs et de scalaires, les scalaires appartenant à un corps (que ce soit R, C, ou un corps tres tordu, tant que vous le définissez dans la classe qui va bien)). si ca vous interesse, je peux finir ca et vous l'envoyer.
    pour l'alloc de ram, new et delete ca marche bien. en tout etat de cause ne surtout pas mélanger (malloc, free), (new, delete) et (new[], delete[] ) (les derniers c'est pour allouer et liberer un tableau.
    si tu veux un type de tableau de taille totalement modulable, essaye les chainages, c'est fait pour ca
    Le rendu, c'est juste de l'intégration numérique sur un espââââââce de dimension infinie...trivial quoi

  8. #38
    Pilier
    Date d'inscription
    juillet 2002
    C4D version
    R13 Visualize
    OS
    Win7 64bits
    Messages
    861

    CALCUL DE VOLUME

    Alors voici mon probleme, je bloque toujours sur le tableau de polygone :?

    Voici le code d'un petit programme pour recupérer les faces d'un poly ( un Cube dans le cas present :| )

    le debut est triviale, je veriefie que le cube existe, ensuite je recupere son nombre de face et ensuite... impossible de recupérer les face. La fonction GetPolygon est supposé me retourner le tableau des faces de type *polygone, un pointeur donc :roll:

    Ma doc de compilateur Borland C++ est out pour tout ce qui est pointeur, rien ne marche Il faut une doc Visual C++? je ne pensais pas que cela jouerai a ce point :coup:


    Suivent donc deux solutions que j'ai testées sans succé, et je vous passe les autres avec des *

    Code:
    //programme pour recupérer les faces d'un poly
    main&#40;doc,op&#41;
    &#123;
    	var VolMail=doc->FindObject&#40;"Cube"&#41;;
    	if &#40;!VolMail&#41;
    	&#123;
    		println&#40;"Volume introuvable."&#41;;
    		return 0;
    	&#125;
    	
    	println&#40;"Volume identifié."&#41;;
    	var NbPoly=VolMail->GetPolygonCount&#40;&#41;;
    	println&#40;"nombre de polygone &#58; ",NbPoly&#41;;
    
    // Solution 1
    //	var MonPoly = VolMail->GetPolygon&#40;&#41;;
    
    // Solution 2
    //	var tab = new&#40;array,NbPoly&#41;;
    //	tab&#91;0&#93;=VolMail->GetPolygon&#40;&#41;;
    
    	return 0;
    &#125;
    Quelqu'un saurait il comment recupere le tableau de polygone? Merci
    Tout le monde savait que c'était impossible, est venu un con qui ne le savait pas et qui l'a fait!
    MarcelPagnol

  9. #39
    Squatteur
    Date d'inscription
    février 2003
    Messages
    151

    CALCUL DE VOLUME

    il faut que tu fasse une boucle pour remplir ton tableau
    var i;
    var tab=new(array,NbPoly);
    for (i=0;i<NbPoly;i++)
    {
    tab[i]=VolMail->GetPolygon(i);
    }
    On ne peut pas être au four et l&#039;argent du beurre.

  10. #40

    CALCUL DE VOLUME

    pour une doc mega super geniale et complete sur le C++, lisez ceci :
    http://c.ftp-developpez.com/download....40.6-html.zip
    et en plus c'est en francais (ca fait 522ko, il existe des versions visualisables online et en pdf).
    enjoy!
    Le rendu, c'est juste de l'intégration numérique sur un espââââââce de dimension infinie...trivial quoi

  11. #41
    Pilier
    Date d'inscription
    juillet 2002
    C4D version
    R13 Visualize
    OS
    Win7 64bits
    Messages
    861

    CALCUL DE VOLUME

    merci pour la doc Tarlack, je vais voir ca

    Pour la boucle je savais, mais j'ai essayer de limiter le code a mon probleme :oops:

    Par contre ce que je decouvre c'est le parametre de la fonction GetPoligon, dans la doc il est dit que la fonction ne prend pas de paramettre :

    Code:
    Polygon* GetPolygon&#40;void&#41;
    Get the start of the array of polygons.
    
    Return
    Polygon* 
    The polygon array. The polygon object owns the pointed array.
    Quoi qu'il en soit cela semble marcher, merci beaucoup
    Tout le monde savait que c'était impossible, est venu un con qui ne le savait pas et qui l'a fait!
    MarcelPagnol

  12. #42
    Squatteur
    Date d'inscription
    février 2003
    Messages
    151

    CALCUL DE VOLUME

    j'ai vu ça aussi dans la doc, et ça m'a étonné sûrement autant que toi, mais je ne vois pas trop comment récupérer les infos autrement...
    par contre t'as vu le genre de valeurs que ça renvoie?...
    On ne peut pas être au four et l&#039;argent du beurre.

  13. #43
    Pilier
    Date d'inscription
    juillet 2002
    C4D version
    R13 Visualize
    OS
    Win7 64bits
    Messages
    861

    CALCUL DE VOLUME

    Ok, ca avance... voici donc le code qui permet de recupérer les indices des points des faces de l'objet.

    GetPolygon retourne l'identifiant du polygone, ensuite ce sont les fonctions de la classe polygone qui nous permettent de recupérer l'indice du point sur l'objet.

    Prochaine etape recupérer les coordonnées des points :bounce:

    Code:
    //programme pour recupérer les point d'un poly
    main&#40;doc,op&#41;
    &#123;
    	var VolMail=doc->FindObject&#40;"Cube"&#41;;
    	if &#40;!VolMail&#41;
    	&#123;
    		println&#40;"Volume introuvable."&#41;;
    		return 0;
    	&#125;
    	
    	println&#40;"Volume identifié."&#41;;
    	var NbPoly=VolMail->GetPolygonCount&#40;&#41;;
    	println&#40;"nombre de polygone &#58; ",NbPoly&#41;;
    
    	var i;
    	var tab = new&#40;array,NbPoly&#41;;
    	for &#40;i=0;i<NbPoly;i++&#41; 
    	&#123; 
    		tab&#91;i&#93;=VolMail->GetPolygon&#40;i&#41;;
    		println&#40;"Identification du polygone",tab&#91;i&#93;&#41;;
    		println&#40;"Index du premier point de cette face &#58; ",tab&#91;i&#93;->a&#41;;
    		println&#40;"Index du deuxieme point de cette face &#58; ",tab&#91;i&#93;->b&#41;;
    		println&#40;"Index du troisieme point de cette face &#58; ",tab&#91;i&#93;->c&#41;;
    		println&#40;"Index du quattrieme point de cette face &#58; ",tab&#91;i&#93;->d&#41;;
    	&#125;
    	return 0;
    &#125;
    Tout le monde savait que c'était impossible, est venu un con qui ne le savait pas et qui l'a fait!
    MarcelPagnol

  14. #44
    Pilier
    Date d'inscription
    juillet 2002
    C4D version
    R13 Visualize
    OS
    Win7 64bits
    Messages
    861

    CALCUL DE VOLUME

    Pour récupérer les coordonnées des points le protocole est le suivant, il fait appelle a la fonction GetPoint herité dans la classe Polygone. Seul hic, elle est supposée ne pas avoir de paramettre, alors qu'il lui en faut un, comme GetPolygone :| Il y aurait des erreur dans la doc? :o

    Code:
    	for &#40;i=0;i<NbPoly;i++&#41; 
    &#123; 
    // on commence par recupérer le polygone.
    	tab&#91;i&#93;=VolMail->GetPolygon&#40;i&#41;;
    // tab&#91;i&#93;->a donne l'indice du point i et la fonction GetPoint&#40;j&#41; renvoie le vecteur position relative du point numero j.
    	var MonVecteur=VolMail->GetPoint&#40;tab&#91;i&#93;->a&#41;;
    	println&#40;"Face",i+1&#41;;
    	println&#40;"Abscisse du premier point de cette face &#58; ", MonVecteur.x&#41;;
    	println&#40;"Ordonnée du premier point de cette face &#58; ", MonVecteur.y&#41;;
    	&#125;
    Je sai squ'in ne declare pas une variable dans une boucle, c'est simplement pour presenter le code que j'ai fait comme ca. Et parce que je ne sais pas declarer une variable typé dans coffee :oops: je cours voir la doc de Tarlack :mrgreen:
    Tout le monde savait que c'était impossible, est venu un con qui ne le savait pas et qui l'a fait!
    MarcelPagnol

  15. #45
    Gourou Avatar de Daubermman
    Date d'inscription
    août 2003
    Messages
    2 798

    CALCUL DE VOLUME

    C'est nickel, tu avances bien mais c'est dommage, tu aurai pu faire ça en plugin, avec une petite fenêtre comme Majoul :? .
    Dauby pour les intimes !

  16. #46
    Pilier
    Date d'inscription
    juillet 2002
    C4D version
    R13 Visualize
    OS
    Win7 64bits
    Messages
    861

    CALCUL DE VOLUME

    :? je ne sais pas faire, c'est la premiere fois que je fais du coffee :oops:

    Et le code de Majoul n'est pas editable, je ne vois donc pas comment il a fait :|
    Tout le monde savait que c'était impossible, est venu un con qui ne le savait pas et qui l'a fait!
    MarcelPagnol

  17. #47
    Squatteur
    Date d'inscription
    février 2003
    Messages
    151

    CALCUL DE VOLUME

    ça avance...
    comment comptes tu t'y prendre pour la suite? je parle du calcul de volume lui même, tu as un algorithme?
    j'ai farfouillé de mon côté, mais je vois pas quelle méthode mettre en place...
    je suis de toute façon et si je peux aider...
    On ne peut pas être au four et l&#039;argent du beurre.

  18. #48
    Gourou Avatar de Daubermman
    Date d'inscription
    août 2003
    Messages
    2 798

    CALCUL DE VOLUME

    J'ai essayé le COFFEE il y a deux semaines, lit bien la doc, c'est pas mal expliqué et il y a des exemples :wink: (même moi j'ai réussi).
    Dauby pour les intimes !

  19. #49
    Pilier
    Date d'inscription
    juillet 2002
    C4D version
    R13 Visualize
    OS
    Win7 64bits
    Messages
    861

    CALCUL DE VOLUME

    Je lit la doc au fur et a mesure de mes besoin, j'avais trouver un moyen de faire une interface en passant par les DU et en integrant le code Coffee a un Xpresso. Mais je vais voir pour une interface plus pro a l'occasion :roll:

    Coté algo, oui, je vais utiliser la methode d'Euler, il faut calculer le volume algebrique contenue sous la face du poly. soit avec une formule rigoureuse, si je la trouve :roll: soit en moyennant la hauteur de la face, ce qui donnera des resultats d'autant meilleurs que le maillage est fin, mais donnera des conneries avec un maillage "large".

    Histoire de m'inicier, je vais commencer par faire un code qui calcule la surface d'un objet. Ensuite il faudra simplement modifier les calculs, ce qui ne m'inquiette pas plus que ca... Il faut que j'apprenne a manipuler les objets C4D et a faire une petite interface
    Tout le monde savait que c'était impossible, est venu un con qui ne le savait pas et qui l'a fait!
    MarcelPagnol

  20. #50

    CALCUL DE VOLUME

    bonsoir,

    je suis tombé par hasard sur ce sujet. bien qu'il date un peux je crois que j'ai la solution pour calculer le volume.
    il faut raisonner comme pour le calcul des integrale pour le calcul des surfaces. voir schéma ci-joint :



    pour le calcul d'un volume pour un polygone donné se serai ceci :



    le volume total d'un objet serait la somme de tous les volumes situé en dessous de chaque polygone.
    A savoir les polygone dont la normal est positif ( c'est a dire la composante Y positif) seront additionné est les polygone dont la composante Y de la normale est negatif serait soustrait.

    ce qui serait interessant c'est qu'une personne puisse programmer une interface en COFFEE dans lequel on gilsserai l'objet, et ensuit le resultat serai affiché dans cette interface.
    je pense pas que se soit compliqué à programmer pour une personne qui connais le COFFEE.
    C'est un calcul avec boucle qui va du premier au dernier polygone.

    j'espère que ca vous aidera.

    à bientôt.
    Imagerie 3D et retouche Photographique

  21. #51
    Squatteur
    Date d'inscription
    avril 2003
    C4D version
    R11
    OS
    Snow leopard
    Messages
    281

    CALCUL DE VOLUME

    Majoul avait réalisé une expression qui permettait cela et qui était selon les remarques de PP assez juste malgré quelques petites erreurs. Cà se trouve sur http://www.bubbles4d.com partie Coffee et Invitation au coffee (si mes souvenirs sont bons).
    Il utilisait lui je crois la technique des pyramides qui ont pour base un polygone et pour sommet le centre des axes de l'objet. Quelqu'un me rectifie si je me trompe.

  22. #52
    Dépendant
    Date d'inscription
    janvier 2003
    C4D version
    R14 Prime
    Messages
    449

    CALCUL DE VOLUME

    Oui c’est pareil sauf qu’avec les pyramides c’est la projection de tous les points du volume sur un point quelconque de l’espace, le calcul est plus simple à réaliser.

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  
Mediaworks - Logiciels 3D | Design Internet - Creation site internet