J'ai du mal à déchiffrer les paramètres individuels de la formule NURBS dans l'entrée NURBSTo de formes (utilisée pour les splines - arêtes incurvées). La documentation MS Visio n'a pas beaucoup aidé.Formule Visio NURBS
Le nombre de paramètres est variable en fonction de la complexité de la courbe. Un exemple plus simple:
NURBS(0.4492,3,0,1,0,-0.1875,0,1,1,-0.1875,0,1)
où j'ai découvert les début et de fin paramètres de départ de coordonnées 5 X et 6 pour Y. End est 9 pour X et 10 pour Y. Mais les coordonnées Y sont encore mal , donc je suppose qu'ils devraient être combinés avec un autre paramètre. Ce code Java fourni les meilleurs résultats à ce jour à obtenir les points de contrôle de la spline:
int j = 0;
for (int i = 2; i + 4 < pointsS.length; i = i + 4)
{
mxPoint currPoint = new mxPoint();
currPoint.setX(startXY.getX() + (endXY.getX() - startXY.getX()) * pointsRaw[i + 2]);
currPoint.setY(startXY.getY() - (endXY.getY() - startXY.getY()) * pointsRaw[i + 3]);
pointList.add(currPoint);
j++;
}
Juste un exemple pour une spline plus complexe:
NURBS(2.9857,3,1,1,0.1875,0,0,1,0.1875,-0.8954,0,1,0.1875,-1.3431,0,1,0.1875,-1.7908,0.4521,1,-0.4936,-1.7908,1.049,1,-1.1747,-1.7908,1.424,1,-1.1747,-2.1799,1.902,1,-1.1747,-2.5689,2.3742,1)
La documentation dit pour param 2 seulement « degré ". Je suppose que c'est le degré du polynôme qui est utilisé pour l'approximation.
La page wiki sur les NURBS: http://en.wikipedia.org/wiki/Non-uniform_rational_B-spline
Bien sûr, il ne parle pas de paramètres Visio :)
Oui Mike et même ce n'est pas exactement comme indiqué dans la documentation. –