[Python] Eine einfache Funktion zum Ermitteln der Mittelkoordinaten eines Kreises

Eine einfache Funktion zum Ermitteln der Mittelkoordinaten eines Kreises

Dies ist eine einfache Methode, um drei Punkte in der Reihenfolge aus dem Array auszuwählen, zwei vertikale Winkelhalbierende zu finden und deren Schnittpunkt zu zentrieren.

import numpy as np
import matplotlib.pyplot as plt
import random

#Gesamtzahl der Punkte
N = 4

#xy ist Eingabe, xy_o Ausgänge
#Beide sind zweidimensionale Arrays und Formen.[[x1, y1], [x2, y2], [x3, y3], ...]
def circle_c(xy):
    #Da 3 Punkte verwendet werden, um den Mittelpunkt des Kreises zu finden, wird die Ausgabe um 2 Punkte reduziert.
    xy_o_len = len(xy) - 2
    #Stellen Sie das Array für die Ausgabe ein.
    xy_o = np.zeros((xy_o_len, 2))
    #Finden Sie den Mittelpunkt des Kreises in der Reihenfolge von vorne um 3 Punkte.
    for i in range(xy_o_len):
        #Hilfsberechnung
        x12 = xy[i+0, 0] + xy[i+1, 0]
        # x13 = xy[i+0, 0] + xy[i+2, 0]
        x23 = xy[i+1, 0] + xy[i+2, 0]
        x21 = xy[i+1, 0] - xy[i+0, 0]
        # x31 = xy[i+2, 0] - xy[i+0, 0]
        x32 = xy[i+2, 0] - xy[i+1, 0]
        y12 = xy[i+0, 1] + xy[i+1, 1]
        # y13 = xy[i+0, 1] + xy[i+2, 1]
        # y23 = xy[i+1, 1] + xy[i+2, 1]
        y21 = xy[i+1, 1] - xy[i+0, 1]
        y31 = xy[i+2, 1] - xy[i+0, 1]
        y32 = xy[i+2, 1] - xy[i+1, 1]
        #Berechnen Sie den Mittelpunkt des Kreises
        xy_o[i, 0] = (y31 - x21*x12/y21 + x32*x23/y32)*0.5 / (x32/y32 - x21/y21) #x Komponente
        xy_o[i, 1] = -(xy_o[i, 0] - x12 * 0.5)*x21/y21 + y12*0.5 #y-Komponente
    return xy_o

x = np.arange(N)
y = np.random.rand(N)
xy = np.c_[x, y]

cxy = circle_c(xy)

f = plt.subplot()
f.plot(xy[:, 0], xy[:, 1], marker='.', markersize=20)
f.scatter(cxy[:, 0], cxy[:, 1], s=900, c="pink", alpha=0.5, linewidths="2", edgecolors="red")
f.set_aspect('equal')
plt.show()

Recommended Posts

[Python] Eine einfache Funktion zum Ermitteln der Mittelkoordinaten eines Kreises
[Python3] Definition eines Dekorators, der die Ausführungszeit einer Funktion misst
Holen Sie sich den Aufrufer einer Funktion in Python
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Ich habe eine Funktion erstellt, um die Bewegung eines zweidimensionalen Arrays (Python) zu sehen.
Python Hinweis: Das Rätsel, einer Variablen eine Variable zuzuweisen
Fügen Sie eine Funktion hinzu, um dem Wetter heute mitzuteilen, dass der Bot locker ist (hergestellt von Python).
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Finden Sie die scheinbare Breite einer Zeichenfolge in Python heraus
Eine einfache Python-Implementierung der k-Neighborhood-Methode (k-NN)
Schreiben Sie ein Python-Programm, um die Bearbeitungsentfernung [Python] [Levenshtein-Entfernung] zu ermitteln.
Ich habe eine Funktion erstellt, um das Modell von DCGAN zu überprüfen
So ermitteln Sie den Skalierungskoeffizienten eines bipolaren Wavelets
Finden Sie die Eigenwerte einer reellen symmetrischen Matrix in Python
[Python] Programmieren, um die Nummer von a in einer Zeichenfolge zu finden, die eine bestimmte Anzahl von Malen wiederholt.
Ich habe eine Funktion zum Trimmen des Bildes von Python openCV erstellt. Verwenden Sie sie daher bitte.
[Python] Ein Programm, um die Anzahl der Äpfel und Orangen zu ermitteln, die geerntet werden können
So bestimmen Sie die Existenz eines Selenelements in Python
Finden Sie den optimalen Wert der Funktion mit einem genetischen Algorithmus (Teil 2)
[Einführung in Python] So teilen Sie eine Zeichenfolge mit der Funktion split
So überprüfen Sie die Speichergröße einer Variablen in Python
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
So ermitteln Sie die Speicheradresse des Pandas-Datenrahmenwerts
So ermitteln Sie die Scheitelpunktkoordinaten eines Features in ArcPy
Erstellen Sie eine Funktion, um den Inhalt der Datenbank in Go abzurufen
[Python] Ein Hinweis, dass ich das Verhalten von matplotlib.pyplot zu verstehen begann
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
Finden Sie den Schnittpunkt eines Kreises und einer geraden Linie (Sympymatrix)
[Python3] Schreiben Sie das Codeobjekt der Funktion neu
Ein einfaches IDAPython-Skript zum Benennen einer Funktion
[Python] [Meta] Ist der Python-Typ ein Typ?
Die Geschichte der Verarbeitung A von Blackjack (Python)
[Python] Erklärt anhand eines konkreten Beispiels, wie die Bereichsfunktion verwendet wird
Verschiedene Methoden zum numerischen Erstellen der Umkehrfunktion einer bestimmten Funktion Einführung
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
So erstellen Sie einen Wrapper, der die Signatur der zu umschließenden Funktion beibehält
[Einführung in Python] So schreiben Sie eine Zeichenfolge mit der Formatierungsfunktion
Ermitteln Sie den Mindestwert der Funktion mithilfe der Partikelgruppenoptimierungsmethode (PSO).
Python-Code zur Bestimmung der monatlichen Signale für Investitionen mit relativer Stärke
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
[Python] Hinweis: Selbst erstellte Funktion zum Ermitteln des Bereichs der Normalverteilung
Einführung und Verwendung der Python-Flasche ・ Versuchen Sie, einen einfachen Webserver mit Anmeldefunktion einzurichten
So berechnen Sie die Volatilität einer Marke
Zeichnen Sie in Python ein Diagramm einer quadratischen Funktion
So finden Sie den Bereich des Boronoi-Diagramms
Die Hand von "Millijan" durch Kombinationsoptimierung finden
Kopieren Sie die Liste in Python
Finden Sie die Anzahl der Tage in einem Monat
Schreiben Sie eine Notiz über die Python-Version von Python Virtualenv
Finden Sie den Bruchteil des in Python eingegebenen Werts heraus
Finden Sie die Lösung der Gleichung n-ter Ordnung mit Python
[Python] Ein grobes Verständnis des Protokollierungsmoduls
Ausgabe in Form eines Python-Arrays
Python Amateur versucht die Liste zusammenzufassen ②
[Python] Finden Sie die Translokationsmatrix in Einschlussnotation