Python - Graficas matplotlib embebido eb pyqt4, intersecciones, uniones, etc.

 
Vista:
sin imagen de perfil

Graficas matplotlib embebido eb pyqt4, intersecciones, uniones, etc.

Publicado por marco (2 intervenciones) el 30/04/2018 15:31:38
Hola a todos. Que les vaya bien!

Como pueden ver tengo un programa hecho con python y matplotlib y pyqt4. Deseo hacer intersecciones, uniones, exclusiones y resta de conjuntos de puntos y luego rellenarlos con ax.fill(). Como voy a querer libewidth para todos estos eventos, intente quitarele los datos extermos pero volvia a aparecer la ralla del medio. Agradezco cualquier apoyo para quitar esta linea. Este es parte del codigo, es bien sencillo, como me gusta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
def interseccion(self):
    enunciado=self.resumen.text()
    if 'circunsferencia' in enunciado:
        x2,y2,x1,y1=self.xcirclista[-1],self.ycirclista[-1],self.xcirclista[-2],self.ycirclista[-2]
        nx1,ny1,nx2,ny2=self.xcirclista[-1][100],self.ycirclista[-1][100],self.xcirclista[-2][100],self.ycirclista[-2][100]
        mx1=0.5*(self.xcirclista[-1][100]+self.xcirclista[-1][0])
        my1=0.5*(self.ycirclista[-1][100]+self.ycirclista[-1][0])
        radio1=m.sqrt((self.xcirclista[-1][0]-mx1)**2+(self.ycirclista[-1][0]-my1)**2)
        mx2=0.5*(self.xcirclista[-2][100]+self.xcirclista[-2][0])
        my2=0.5*(self.ycirclista[-2][100]+self.ycirclista[-2][0])
        radio2=m.sqrt((self.xcirclista[-2][0]-mx2)**2+(self.ycirclista[-2][0]-my2)**2)
        d21=[m.sqrt((self.xcirclista[-2][i]-mx1)**2+(self.ycirclista[-2][i]-my1)**2) for i in range(len(self.xcirclista[-2]))]
        d12=[m.sqrt((self.xcirclista[-1][i]-mx2)**2+(self.ycirclista[-1][i]-my2)**2) for i in range(len(self.xcirclista[-1]))]
        self.xinter21=[]
        self.yinter21=[]
        self.puntos21=[]
        for i in range(len(self.xcirclista[-1])-1):
            if d21[i] <= radio1:
                self.xinter21.append(self.xcirclista[-2][i])
                self.yinter21.append(self.ycirclista[-2][i])
        self.xinter12=[]
        self.yinter12=[]
        self.puntos12=[]
        for i in range(len(self.xcirclista[-2])-1):
            if d12[i] <= radio2:
                self.xinter12.append(self.xcirclista[-1][i])
                self.yinter12.append(self.ycirclista[-1][i])
 
        self.ax.plot(self.xinter21,self.yinter21, 'blue', lw=3)
        self.ax.plot(self.xinter12,self.yinter12, 'blue', lw=3)
        self.ax2.plot(self.xinter21,self.yinter21, 'blue', lw=3)
        self.ax2.plot(self.xinter12,self.yinter12, 'blue', lw=3)
#       self.ax.fill(x,y, 'yellow')
        self.canvas.draw()
        self.canvas2.draw()

Captura-de-pantalla-300418-100825
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder