Verbinden von zwei Punkten mit einer Linie in einer Zeichnung in Python

  • Grundsätzlich muss ich ein NxN-Gitter innerhalb bestimmter Grenzen einer BoundingBox zeichnen und dazu eine Funktion schreiben. Meine Idee ist, dass ich horizontale und vertikale Linien zeichnen und Breite und Höhe berechnen möchte, indem ich den Bereich der Grenzen durch N dividiere. Dann möchte ich die Linien mit Pyplot mit den Enden der Linien zeichnen, und hier bin ich Probleme haben. Ich habe so etwas, aber es ist nicht gut durchdacht. Die boundingBox besteht im Wesentlichen aus Koordinaten.

     def drawGridLines(boundingBox, N):
        lonrange = boundingBox[1][0] - boundingBox[0][0]
        latrange = boundingBox[1][1] - boundingBox[0][1]
        lonpieces = lonrange/N
        latpieces = latrange/N
    
        while (lonpieces <= N):
            lon = lonpieces
            pylab.plot(lon)
            lonpieces = lonpieces + (lonrange/N)
     

    Das ist was ich habe

    Das möchte ich jetzt haben

    22 November 2011
    Josh Bleecher Snyder
1 answer
  • Ich weiß nicht viel über Python oder Pylab, daher bin ich mir nicht sicher, ob ich Ihre Frage vollständig beantworten kann, aber ich kann vielleicht einen Einblick geben. Es scheint, als wollten Sie bei jeder Wiederholung der Schleife eine Linie zeichnen. Es scheint, als ob Sie zwei Schleifen benötigen, nicht nur eine.

    Ich könnte mir vorstellen, dass Ihre erste Schleife in etwa so aussieht:

     //introduce some sort of counter variable
    count =0
    while(count <= N):
        //draw a vertical line at appropriate spot
        drawSpot = boundingBox[0][0] + count * lonPieces
        count = count +1
     

    und Ihre zweite Schleife könnte folgendermaßen aussehen:

     count =0
    while(count <= N):
        //draw a horizontal line at appropriate spot
        drawSpot = boundingBox[0][1] + count * latPieces
        count = count +1
     
    <| Ich kann horizontal und vertikal durcheinander geraten, aber ich hoffe, dass das Muster klar ist. Wenn Sie Fragen haben, hinterlassen Sie bitte einen Kommentar. Viel Glück!

    11 December 2011
    Matt