示例#1
0
 def _point(self, u, v):
     c = len(u)
     points = np.empty((c, 3))
     nv = nsin(v)
     points[:, 0] = self.a * ncos(u) * nv + self.center[0]
     points[:, 1] = self.b * nsin(u) * nv + self.center[1]
     points[:, 2] = self.c * ncos(v) + self.center[2]  #
     if self.perturbfactor != 1:
         points = points * (1 + np.random.random(
             (c, 3))) * self.perturbfactor
     return points
示例#2
0
    def _creer_figure(self):
        if not self._representation:
            self._representation = [self.rendu.ligne(), self.rendu.ligne(), self.rendu.codage()]
            # 2 lignes pour afficher l'arc lui-même

        for plot in self._representation[1:]:
            plot.set_visible(False)

        x, y = self._Arc_generique__centre.coordonnees
        r = self.rayon
        niveau, couleur, style, epaisseur = self.style(('niveau', 'couleur', 'style', 'epaisseur'))

        for i, t in enumerate(self._t()):
            plot = self._representation[i]
            plot.set_data(x + r*ncos(t), y + r*nsin(t))
            plot.set(color=couleur, linestyle=style, linewidth=epaisseur, zorder=niveau, visible=True)

        # Gestion du codage des arcs de cercle (utilisé pour indiquer les arcs de cercles de même longeur)
        if self.style("codage"):
            a, b = self._intervalle()
            c = .5*(a + b)
            x0 = x + r*cos(c)
            y0 = y + r*sin(c)
            self._representation[2].set(visible=True, style=self.style('codage'),
                       position=(x0, y0),
                       direction=(y0 - y, x - x0), # vecteur orthogonal au rayon
                       taille=param.codage["taille"], angle=param.codage["angle"],
                       color=couleur, linewidth=epaisseur,
                       zorder=niveau + 0.01,
                      )
示例#3
0
 def _espace_vital(self):
     x0, y0 = self.__centre.coordonnees
     a, b = self._intervalle()
     t = arange(a, b, .003)
     r = self.rayon
     u = x0 + r * ncos(t)
     v = y0 + r * nsin(t)
     return min(u), max(u), min(v), max(v)
示例#4
0
 def _espace_vital(self):
     x0, y0 = self.__centre.coordonnees
     a, b = self._intervalle()
     t = arange(a, b, .003)
     r = self.rayon
     u = x0 + r*ncos(t)
     v = y0 + r*nsin(t)
     return min(u), max(u), min(v), max(v)
示例#5
0
    def _creer_figure(self):
        if not self._representation:
            self._representation = [self.rendu.ligne()]

        plot = self._representation[0]
        x, y = self.__centre.coordonnees
        r = self.rayon
        t = self._t()
        plot.set_data(x + r*ncos(t), y + r*nsin(t))
        plot.set(color=self.style("couleur"), linestyle = self.style("style"),
                 linewidth=self.style("epaisseur"))
        plot.zorder = self.style("niveau")
示例#6
0
    def _creer_figure(self):
        if not self._representation:
            self._representation = [self.rendu.ligne()]

        plot = self._representation[0]
        x, y = self.__centre.coordonnees
        r = self.rayon
        t = self._t()
        plot.set_data(x + r * ncos(t), y + r * nsin(t))
        plot.set(color=self.style("couleur"),
                 linestyle=self.style("style"),
                 linewidth=self.style("epaisseur"))
        plot.zorder = self.style("niveau")
示例#7
0
    def _creer_figure(self):
        if not self._representation:
            self._representation = [self.rendu.polygone()]

        fill = self._representation[0]
        x, y = self._Cercle_generique__centre.coordonnees
        r = self.rayon
        t = fullrange(0, 2*pi , self.canvas.pas())
        fill.set(xy = zip(x + r*ncos(t), y + r*nsin(t)),
                alpha = self.style("alpha"), color = self.style("couleur"),
                linestyle = FILL_STYLES.get(self.style("style"), "solid"),
                linewidth = self.style("epaisseur"),
                zorder = self.style("niveau"))
示例#8
0
    def _creer_figure(self):
        if not self._representation:
            self._representation = [self.rendu.polygone()]

        fill = self._representation[0]
        x, y = self._Cercle_generique__centre.coordonnees
        r = self.rayon
        t = fullrange(0, 2 * pi, self.__canvas__.pas())
        fill.xy = zip(x + r * ncos(t), y + r * nsin(t))
        fill._alpha = self.style("alpha")
        fill._color = self.style("couleur")
        fill._linestyle = FILL_STYLES.get(self.style("style"), "solid")
        fill._linewidth = self.style("epaisseur")
        fill.zorder = self.style("niveau")
示例#9
0
    def _creer_figure(self):
        if not self._representation:
            self._representation = [
                self.rendu.ligne(),
                self.rendu.ligne(),
                self.rendu.codage()
            ]
            # 2 lignes pour afficher l'arc lui-même

        for plot in self._representation[1:]:
            plot.set_visible(False)

        x, y = self._Arc_generique__centre.coordonnees
        r = self.rayon
        niveau, couleur, style, epaisseur = self.style(
            ('niveau', 'couleur', 'style', 'epaisseur'))

        for i, t in enumerate(self._t()):
            plot = self._representation[i]
            plot.set_data(x + r * ncos(t), y + r * nsin(t))
            plot.set(color=couleur,
                     linestyle=style,
                     linewidth=epaisseur,
                     zorder=niveau,
                     visible=True)

        # Gestion du codage des arcs de cercle (utilisé pour indiquer les arcs de cercles de même longeur)
        if self.style("codage"):
            a, b = self._intervalle()
            c = .5 * (a + b)
            x0 = x + r * cos(c)
            y0 = y + r * sin(c)
            self._representation[2].set(
                visible=True,
                style=self.style('codage'),
                position=(x0, y0),
                direction=(y0 - y, x - x0),  # vecteur orthogonal au rayon
                taille=param.codage["taille"],
                angle=param.codage["angle"],
                color=couleur,
                linewidth=epaisseur,
                zorder=niveau + 0.01,
            )
示例#10
0
def A04B_tf():
    s44B_tf= Matrix([[ncos(np.pi/4),-nsin(np.pi/4),0,0],                        [nsin(np.pi/4),ncos(np.pi/4),0,0],                        [0,0,1,0.10688],                        [0,0,0,1]])
    tf = A04_tf()*s44B_tf
    return tf
示例#11
0
def A07_tf():
    q7 = symbols('q7')
    A67=Matrix([[cos(q7),-sin(q7),0,l5*nsin(theta2)],                [0,0,1,l5*ncos(theta2)],                [-sin(q7),-cos(q7),0,0],                [0,0,0,1]])
    tf =A06_tf()* A67
    return tf
示例#12
0
def A05_tf():
    q5 = symbols('q5')
    A45=Matrix([[cos(q5),-sin(q5),0,l4*nsin(theta1)],                [0,0,-1,-l4*ncos(theta1)],                [sin(q5),cos(q5),0,0],                [0,0,0,1]])

    tf =A04_tf()*A45
    return tf