Si tu as de la chance quelqu'un passera ici et connaîtra ce problème, mais ce n'est pas sûr.
Si tu as des difficultés à comprendre l'algorithme, tu auras peut-être plus de chance sur un groupe qui parle de mathématiques, non ?
Si tu comprends bien l'algorithme, en as-tu une représentation formelle simplifiée ? Sans toutes les équations, mais au moins les étapes du calcul.
Et aussi un exemple de calcul, avec les résultats intermédiaires ? Soit trouvé quelque part dans une explication, soit calculé à la main ou avec un autre logiciel.
Le Thu, 8 Jan 2015 03:38:51 -0800 (PST)
ibiiztera <manuel.dahmen@gmail.com> a écrit :
Je ne m'en sors pas avec l'implantation des Nurbs dans mon logiciel
malgré l'aide de nombreux livres et documents.
https://github.com/mdahmen/emptycanvas
[...]
Si tu as de la chance quelqu'un passera ici et connaîtra ce problème,
mais ce n'est pas sûr.
Si tu as des difficultés à comprendre l'algorithme, tu auras peut-être
plus de chance sur un groupe qui parle de mathématiques, non ?
Si tu comprends bien l'algorithme, en as-tu une représentation formelle
simplifiée ? Sans toutes les équations, mais au moins les étapes du
calcul.
Et aussi un exemple de calcul, avec les résultats intermédiaires ? Soit
trouvé quelque part dans une explication, soit calculé à la main ou
avec un autre logiciel.
Si tu as de la chance quelqu'un passera ici et connaîtra ce problème, mais ce n'est pas sûr.
Si tu as des difficultés à comprendre l'algorithme, tu auras peut-être plus de chance sur un groupe qui parle de mathématiques, non ?
Si tu comprends bien l'algorithme, en as-tu une représentation formelle simplifiée ? Sans toutes les équations, mais au moins les étapes du calcul.
Et aussi un exemple de calcul, avec les résultats intermédiaires ? Soit trouvé quelque part dans une explication, soit calculé à la main ou avec un autre logiciel.
ibiiztera
Le jeudi 8 janvier 2015 13:16:53 UTC+1, Yliur a écrit :
Le Thu, 8 Jan 2015 03:38:51 -0800 (PST) ibiiztera a écrit :
> Je ne m'en sors pas avec l'implantation des Nurbs dans mon logiciel > malgré l'aide de nombreux livres et documents. > > https://github.com/mdahmen/emptycanvas > > [...]
Si tu as de la chance quelqu'un passera ici et connaîtra ce problème, mais ce n'est pas sûr.
Si tu as des difficultés à comprendre l'algorithme, tu auras peut-ê tre plus de chance sur un groupe qui parle de mathématiques, non ?
Le groupe de math j'en viens ... Si personne n'a la réponse c'est bon je sors et vais m'acheter un bouquin à 200 EURO qui traite le sujet de mani ère approfondie. Ce dont je ne pense pas avoir besoin.
Si tu comprends bien l'algorithme, en as-tu une représentation formelle simplifiée ? Sans toutes les équations, mais au moins les étapes du calcul.
Les équations présentées ci-dessus Sont les étapes du calcul. Mais il semble y avoir une erreur ??? Où est l'erreur?
Et aussi un exemple de calcul, avec les résultats intermédiaires ? So it trouvé quelque part dans une explication, soit calculé à la main ou avec un autre logiciel.
Le jeudi 8 janvier 2015 13:16:53 UTC+1, Yliur a écrit :
Le Thu, 8 Jan 2015 03:38:51 -0800 (PST)
ibiiztera <manuel.dahmen@gmail.com> a écrit :
> Je ne m'en sors pas avec l'implantation des Nurbs dans mon logiciel
> malgré l'aide de nombreux livres et documents.
>
> https://github.com/mdahmen/emptycanvas
>
> [...]
Si tu as de la chance quelqu'un passera ici et connaîtra ce problème,
mais ce n'est pas sûr.
Si tu as des difficultés à comprendre l'algorithme, tu auras peut-ê tre
plus de chance sur un groupe qui parle de mathématiques, non ?
Le groupe de math j'en viens ... Si personne n'a la réponse c'est bon je sors et vais m'acheter un bouquin à 200 EURO qui traite le sujet de mani ère approfondie. Ce dont je ne pense pas avoir besoin.
Si tu comprends bien l'algorithme, en as-tu une représentation formelle
simplifiée ? Sans toutes les équations, mais au moins les étapes du
calcul.
Les équations présentées ci-dessus Sont les étapes du calcul. Mais il semble y avoir une erreur ??? Où est l'erreur?
Et aussi un exemple de calcul, avec les résultats intermédiaires ? So it
trouvé quelque part dans une explication, soit calculé à la main ou
avec un autre logiciel.
Le jeudi 8 janvier 2015 13:16:53 UTC+1, Yliur a écrit :
Le Thu, 8 Jan 2015 03:38:51 -0800 (PST) ibiiztera a écrit :
> Je ne m'en sors pas avec l'implantation des Nurbs dans mon logiciel > malgré l'aide de nombreux livres et documents. > > https://github.com/mdahmen/emptycanvas > > [...]
Si tu as de la chance quelqu'un passera ici et connaîtra ce problème, mais ce n'est pas sûr.
Si tu as des difficultés à comprendre l'algorithme, tu auras peut-ê tre plus de chance sur un groupe qui parle de mathématiques, non ?
Le groupe de math j'en viens ... Si personne n'a la réponse c'est bon je sors et vais m'acheter un bouquin à 200 EURO qui traite le sujet de mani ère approfondie. Ce dont je ne pense pas avoir besoin.
Si tu comprends bien l'algorithme, en as-tu une représentation formelle simplifiée ? Sans toutes les équations, mais au moins les étapes du calcul.
Les équations présentées ci-dessus Sont les étapes du calcul. Mais il semble y avoir une erreur ??? Où est l'erreur?
Et aussi un exemple de calcul, avec les résultats intermédiaires ? So it trouvé quelque part dans une explication, soit calculé à la main ou avec un autre logiciel.
Samuel DEVULDER
Le 08/01/2015 13:19, Yliur a écrit :
Si tu as des difficultés à comprendre l'algorithme, tu auras peut-être plus de chance sur un groupe qui parle de mathématiques, non ?
Il/elle en vient (fr.sci.maths)
Ici il y a confusion entre algorithme et implémentation (un algorithme ne s'ecrit pas en java, mais en pseudo langage avec des mots et des abstractions et pas des trucs bas niveaux comme hashmap ou tableaux d'entiers). De ce que j'ai pu comprendre c'est l'implémentation qui soit n'arrive pas à être faite, soit ne marche pas comme attendu.
Donner le code source ne sert pas à grand-chose. Il faut plus d'explications sur le principe de l'algo, de la façon dont on a décidé de l'implémenter, ainsi que le détail de ce qu'on obtient et pourquoi on devrait obtenir autre chose.
Bref sans plus d'infos c'est mal barré pour avoir une réponse qui aidera l'O.P. :-/
a+
sam.
Le 08/01/2015 13:19, Yliur a écrit :
Si tu as des difficultés à comprendre l'algorithme, tu auras peut-être
plus de chance sur un groupe qui parle de mathématiques, non ?
Il/elle en vient (fr.sci.maths)
Ici il y a confusion entre algorithme et implémentation (un algorithme
ne s'ecrit pas en java, mais en pseudo langage avec des mots et des
abstractions et pas des trucs bas niveaux comme hashmap ou tableaux
d'entiers). De ce que j'ai pu comprendre c'est l'implémentation qui soit
n'arrive pas à être faite, soit ne marche pas comme attendu.
Donner le code source ne sert pas à grand-chose. Il faut plus
d'explications sur le principe de l'algo, de la façon dont on a décidé
de l'implémenter, ainsi que le détail de ce qu'on obtient et pourquoi on
devrait obtenir autre chose.
Bref sans plus d'infos c'est mal barré pour avoir une réponse qui aidera
l'O.P. :-/
Si tu as des difficultés à comprendre l'algorithme, tu auras peut-être plus de chance sur un groupe qui parle de mathématiques, non ?
Il/elle en vient (fr.sci.maths)
Ici il y a confusion entre algorithme et implémentation (un algorithme ne s'ecrit pas en java, mais en pseudo langage avec des mots et des abstractions et pas des trucs bas niveaux comme hashmap ou tableaux d'entiers). De ce que j'ai pu comprendre c'est l'implémentation qui soit n'arrive pas à être faite, soit ne marche pas comme attendu.
Donner le code source ne sert pas à grand-chose. Il faut plus d'explications sur le principe de l'algo, de la façon dont on a décidé de l'implémenter, ainsi que le détail de ce qu'on obtient et pourquoi on devrait obtenir autre chose.
Bref sans plus d'infos c'est mal barré pour avoir une réponse qui aidera l'O.P. :-/
a+
sam.
Yliur
Le Thu, 8 Jan 2015 05:03:50 -0800 (PST) ibiiztera a écrit :
> Si tu comprends bien l'algorithme, en as-tu une représentation > formelle simplifiée ? Sans toutes les équations, mais au moins les > étapes du calcul.
Les équations présentées ci-dessus Sont les étapes du calcul. Mais il semble y avoir une erreur ??? Où est l'erreur?
Là tu présentes un programme de 200 lignes censé réaliser un calcul que la plupart des gens ne connaissent pas, ça fait pas mal de boulot pour eux de se lancer dans l'étude de ce truc et de déterminer où ton programme contient une erreur.
Je suppose que pour déterminer que ça ne marche pas tu as pris un exemple de données et tu l'as passé dans ton programme. Donc tu pourrais sans doute réaliser le calcul à la main étape par étape et tracer ton programme pour déterminer quelle partie ne fonctionne pas, ça aiderait déjà à cibler un peu.
Sais-tu faire le calcul à la main ?
Le Thu, 8 Jan 2015 05:03:50 -0800 (PST)
ibiiztera <manuel.dahmen@gmail.com> a écrit :
> Si tu comprends bien l'algorithme, en as-tu une représentation
> formelle simplifiée ? Sans toutes les équations, mais au moins les
> étapes du calcul.
Les équations présentées ci-dessus Sont les étapes du calcul. Mais il
semble y avoir une erreur ??? Où est l'erreur?
Là tu présentes un programme de 200 lignes censé réaliser un calcul
que la plupart des gens ne connaissent pas, ça fait pas mal de boulot
pour eux de se lancer dans l'étude de ce truc et de déterminer où ton
programme contient une erreur.
Je suppose que pour déterminer que ça ne marche pas tu as pris un
exemple de données et tu l'as passé dans ton programme. Donc tu pourrais
sans doute réaliser le calcul à la main étape par étape et tracer ton
programme pour déterminer quelle partie ne fonctionne pas, ça aiderait
déjà à cibler un peu.
Le Thu, 8 Jan 2015 05:03:50 -0800 (PST) ibiiztera a écrit :
> Si tu comprends bien l'algorithme, en as-tu une représentation > formelle simplifiée ? Sans toutes les équations, mais au moins les > étapes du calcul.
Les équations présentées ci-dessus Sont les étapes du calcul. Mais il semble y avoir une erreur ??? Où est l'erreur?
Là tu présentes un programme de 200 lignes censé réaliser un calcul que la plupart des gens ne connaissent pas, ça fait pas mal de boulot pour eux de se lancer dans l'étude de ce truc et de déterminer où ton programme contient une erreur.
Je suppose que pour déterminer que ça ne marche pas tu as pris un exemple de données et tu l'as passé dans ton programme. Donc tu pourrais sans doute réaliser le calcul à la main étape par étape et tracer ton programme pour déterminer quelle partie ne fonctionne pas, ça aiderait déjà à cibler un peu.
Sais-tu faire le calcul à la main ?
ibiiztera
Le jeudi 8 janvier 2015 13:16:53 UTC+1, Yliur a écrit :
Le Thu, 8 Jan 2015 03:38:51 -0800 (PST) ibiiztera a écrit :
> Je ne m'en sors pas avec l'implantation des Nurbs dans mon logiciel > malgré l'aide de nombreux livres et documents. > > https://github.com/mdahmen/emptycanvas > > [...]
Si tu as de la chance quelqu'un passera ici et connaîtra ce problème, mais ce n'est pas sûr.
Si tu as des difficultés à comprendre l'algorithme, tu auras peut-ê tre plus de chance sur un groupe qui parle de mathématiques, non ?
Si tu comprends bien l'algorithme, en as-tu une représentation formelle simplifiée ? Sans toutes les équations, mais au moins les étapes du calcul.
Et aussi un exemple de calcul, avec les résultats intermédiaires ? So it trouvé quelque part dans une explication, soit calculé à la main ou avec un autre logiciel.
Le jeudi 8 janvier 2015 13:16:53 UTC+1, Yliur a écrit :
Le Thu, 8 Jan 2015 03:38:51 -0800 (PST)
ibiiztera <manuel.dahmen@gmail.com> a écrit :
> Je ne m'en sors pas avec l'implantation des Nurbs dans mon logiciel
> malgré l'aide de nombreux livres et documents.
>
> https://github.com/mdahmen/emptycanvas
>
> [...]
Si tu as de la chance quelqu'un passera ici et connaîtra ce problème,
mais ce n'est pas sûr.
Si tu as des difficultés à comprendre l'algorithme, tu auras peut-ê tre
plus de chance sur un groupe qui parle de mathématiques, non ?
Si tu comprends bien l'algorithme, en as-tu une représentation formelle
simplifiée ? Sans toutes les équations, mais au moins les étapes du
calcul.
Et aussi un exemple de calcul, avec les résultats intermédiaires ? So it
trouvé quelque part dans une explication, soit calculé à la main ou
avec un autre logiciel.
Voilà ce que j'ai trouvé des sources que j'ai changé en Java (déj à c'était pas évident). Puis j'ai essayé de les intégrer à mon programme emptycanvas
https://gist.github.com/mdahmen/6e64b4c880a6576874e3
Le jeudi 8 janvier 2015 13:16:53 UTC+1, Yliur a écrit :
Le Thu, 8 Jan 2015 03:38:51 -0800 (PST) ibiiztera a écrit :
> Je ne m'en sors pas avec l'implantation des Nurbs dans mon logiciel > malgré l'aide de nombreux livres et documents. > > https://github.com/mdahmen/emptycanvas > > [...]
Si tu as de la chance quelqu'un passera ici et connaîtra ce problème, mais ce n'est pas sûr.
Si tu as des difficultés à comprendre l'algorithme, tu auras peut-ê tre plus de chance sur un groupe qui parle de mathématiques, non ?
Si tu comprends bien l'algorithme, en as-tu une représentation formelle simplifiée ? Sans toutes les équations, mais au moins les étapes du calcul.
Et aussi un exemple de calcul, avec les résultats intermédiaires ? So it trouvé quelque part dans une explication, soit calculé à la main ou avec un autre logiciel.
que ce sont juste une généralisation des courbes et surfaces de Bézier servant dans la génération de surfaces 3D. Il me semble que cette video sur Pixar (en anglais) parle probablement des NURBs sans mentionner le terme:
Oulala c'est quoi cette classe java "Nurbs" avec des méthodes statiques monstrueusement longues ? Où sont les interfaces, les héritages, le dispatching? (ok il y en a un peu dans le reste du code). Remarque: le programme utilise des tableaux mais passe leur taille en paramètres aux fonctions. Ca n'est pas nécessaire: en java le tableau est un objet qui connait sa taille (attribut "length").
Misère. Ca ressemble méchamment à du Fortran, du C ou du basic et pas de la programmation moderne ce code :-/ On ne peut peut-être pas faire autrement avec ces algo numériques, mais franchement c'est pas du code très joli. Pour info, j'ai trouvé une API toute faite pour manipuler ces objets:
As tu regardé comment ils font ? (ils utilisent des classes VRML qui simplifient peut-être le codage en permettant d'écrire et calculer les barycentres de points etc)
Autres truc que je trouve curieux, l'écriture de la méthode retournant le coefficient binomial C(n,p) en passant par les factorielles. Avec des long on peut compter jusqu'à 2^63-1. C'est à dire qu'on ne peut pas calculer factorielle(21) = 5.1E19 > 2^63-1.
Donc n et p sont condamnés à ne pas dépasser 20. C'est pas beaucoup. Pour bien faire il faudrait utiliser la classe BigInteger pour avoir un calcul correct avec n et p>20. Et pour aller plus vite, au lieu de diviser par les factorielles, il serait bien plus efficace d'utiliser la formule C(n,p) = (n-p+1)*(n-p+2)*...*n
BigInteger res = BigInteger.ONE; for(int i=n-p+1; i<=n; ++i) res = res.multiply(BigInteger.valueOf(i)); return res;
Je mentionne cette optimisation, mais il semble que la méthode C(n,p) bien que présente dans le code ne soit pas utilisée :-/. Je suppose qu'elle devait servir à calculer les poids optimaux pour avoir une belle courbe de Bézier.
a+
sam.
Pour tout ceux qui ne savent pas ce que sont les NURBS, je pense après
avoir survolé
que ce sont juste une généralisation des courbes et surfaces de Bézier
servant dans la génération de surfaces 3D. Il me semble que cette video
sur Pixar (en anglais) parle probablement des NURBs sans mentionner le
terme:
https://www.youtube.com/watch?v=mX0NB9IyYpU
En particulier, on voit la construction récursive de ces objets. C'est
assez instructif.
Le 12/01/2015 19:02, ibiiztera a écrit :
Voilà ce que j'ai trouvé des sources que j'ai changé en Java (déjà c'était pas évident). Puis j'ai essayé de les intégrer à mon programme emptycanvas
https://gist.github.com/mdahmen/6e64b4c880a6576874e3
Oulala c'est quoi cette classe java "Nurbs" avec des méthodes statiques
monstrueusement longues ? Où sont les interfaces, les héritages, le
dispatching? (ok il y en a un peu dans le reste du code). Remarque: le
programme utilise des tableaux mais passe leur taille en paramètres aux
fonctions. Ca n'est pas nécessaire: en java le tableau est un objet qui
connait sa taille (attribut "length").
Misère. Ca ressemble méchamment à du Fortran, du C ou du basic et pas de
la programmation moderne ce code :-/ On ne peut peut-être pas faire
autrement avec ces algo numériques, mais franchement c'est pas du code
très joli. Pour info, j'ai trouvé une API toute faite pour manipuler ces
objets:
http://www.ocnus.com/NURBS/
As tu regardé comment ils font ? (ils utilisent des classes VRML qui
simplifient peut-être le codage en permettant d'écrire et calculer les
barycentres de points etc)
Autres truc que je trouve curieux, l'écriture de la méthode retournant
le coefficient binomial C(n,p) en passant par les factorielles. Avec des
long on peut compter jusqu'à 2^63-1. C'est à dire qu'on ne peut pas
calculer factorielle(21) = 5.1E19 > 2^63-1.
Donc n et p sont condamnés à ne pas dépasser 20. C'est pas beaucoup.
Pour bien faire il faudrait utiliser la classe BigInteger pour avoir un
calcul correct avec n et p>20. Et pour aller plus vite, au lieu de
diviser par les factorielles, il serait bien plus efficace d'utiliser la
formule C(n,p) = (n-p+1)*(n-p+2)*...*n
BigInteger res = BigInteger.ONE;
for(int i=n-p+1; i<=n; ++i) res = res.multiply(BigInteger.valueOf(i));
return res;
Je mentionne cette optimisation, mais il semble que la méthode C(n,p)
bien que présente dans le code ne soit pas utilisée :-/. Je suppose
qu'elle devait servir à calculer les poids optimaux pour avoir une belle
courbe de Bézier.
que ce sont juste une généralisation des courbes et surfaces de Bézier servant dans la génération de surfaces 3D. Il me semble que cette video sur Pixar (en anglais) parle probablement des NURBs sans mentionner le terme:
Oulala c'est quoi cette classe java "Nurbs" avec des méthodes statiques monstrueusement longues ? Où sont les interfaces, les héritages, le dispatching? (ok il y en a un peu dans le reste du code). Remarque: le programme utilise des tableaux mais passe leur taille en paramètres aux fonctions. Ca n'est pas nécessaire: en java le tableau est un objet qui connait sa taille (attribut "length").
Misère. Ca ressemble méchamment à du Fortran, du C ou du basic et pas de la programmation moderne ce code :-/ On ne peut peut-être pas faire autrement avec ces algo numériques, mais franchement c'est pas du code très joli. Pour info, j'ai trouvé une API toute faite pour manipuler ces objets:
As tu regardé comment ils font ? (ils utilisent des classes VRML qui simplifient peut-être le codage en permettant d'écrire et calculer les barycentres de points etc)
Autres truc que je trouve curieux, l'écriture de la méthode retournant le coefficient binomial C(n,p) en passant par les factorielles. Avec des long on peut compter jusqu'à 2^63-1. C'est à dire qu'on ne peut pas calculer factorielle(21) = 5.1E19 > 2^63-1.
Donc n et p sont condamnés à ne pas dépasser 20. C'est pas beaucoup. Pour bien faire il faudrait utiliser la classe BigInteger pour avoir un calcul correct avec n et p>20. Et pour aller plus vite, au lieu de diviser par les factorielles, il serait bien plus efficace d'utiliser la formule C(n,p) = (n-p+1)*(n-p+2)*...*n
BigInteger res = BigInteger.ONE; for(int i=n-p+1; i<=n; ++i) res = res.multiply(BigInteger.valueOf(i)); return res;
Je mentionne cette optimisation, mais il semble que la méthode C(n,p) bien que présente dans le code ne soit pas utilisée :-/. Je suppose qu'elle devait servir à calculer les poids optimaux pour avoir une belle courbe de Bézier.