[PYTHON] Erzeugen Sie diese Form des Bodens einer Haustierflasche

Ich beschloss, dieses fünfeckige Programm programmgesteuert am Boden einer kohlensäurehaltigen PET-Flasche herzustellen, die jeder schon immer gesehen hat.

Aus der Schlussfolgerung wurden etwa 70 Punkte durch Selbstbewertung gemacht. Wenn Sie an dem Ergebnis interessiert sind, scrollen Sie zuerst nach unten, um das fertige Bild zu sehen, und entscheiden Sie dann, ob Sie weiterlesen möchten.

Die Form des Bodens einer Haustierflasche mit kohlensäurehaltigem Getränk

Dies ist eine fünfeckige. pet01.jpg

Diese Form wird allgemein als ** Petaloid ** bezeichnet. Es bedeutet "Blütenblatt-Oid". Es wird so genannt, weil es von unten betrachtet wie ein Blütenblatt aussieht.

Wenn Sie zu Hause eine kohlensäurehaltige PET-Flasche haben, schauen Sie bitte unten nach.

Warum ist diese Form?

Es gibt viele Formen für PET-Flaschen, aber im Grunde haben nur kohlensäurehaltige Getränke diese Bodenform. Kohlensäurehaltige Getränke haben einen starken Innendruck. Wenn sie also die Form einer Teeflasche haben, schwillt der Boden an. Es wird gesagt, dass Petaloide verwendet werden, um die Festigkeit aufrechtzuerhalten, da Probleme wie Rollen und Platzen so auftreten, wie sie sind.

Ich möchte ein Experiment vorstellen, bei dem Backpulver tatsächlich in eine PET-Flasche Tee gegeben wurde, um seine Stärke zu testen.

Es gibt ein tiefes Geheimnis in Form von Haustierflaschen - Diamond Online

Zeichne ein Blütenblatt

Ziel

Das Ziel dieses Artikels ist die programmgesteuerte Erzeugung von Blütenblattformen. Streben Sie nach Qualität, wie sie ist (erwarten Sie nicht zu viel, weil mein Urteil schlampiger ist als die der Öffentlichkeit).

Suche nach Materialien von Google

Ich fragte mich, ob es leicht mit einer einzigen Formel ausgedrückt werden könnte, aber ich bekam keine Ergebnisse. Obwohl Drucktestdaten herauskommen werden ...

Vielleicht entwerfe ich mit CAD.

Beobachten

Wenn Sie sich nicht auf das Internet verlassen können, müssen Sie es selbst tun. Zum Glück habe ich so viele echte Dinge wie ich. Schneiden Sie zuerst mit einem Cutter nur den Boden der PET-Flasche aus.

pet02.jpg

Versuchen Sie außerdem, sich vertikal von der Mitte aus zu halbieren. Von der 12-Uhr-Richtung zur 6-Uhr-Richtung im obigen Bild.

pet03.jpg

Was ich fand

Wie Sie auf einen Blick sehen können, sind zunächst fünf gleiche Formen am Umfang aufgereiht. Wenn Sie also eine davon reproduzieren können, können Sie sehen, dass Sie das Ziel erreichen können, indem Sie fünf kopieren und anordnen.

In Bezug auf die Form gibt es abwechselnde Spitzen und Täler, und die Täler sind ungefähr 6 bis 7 mm breit und scheinen Linien zu haben, die parallel von der Mitte zum Außenumfang verlaufen. Die Form des Berges ist ziemlich kompliziert, aber von direkt oben (oder direkt unten) wie ein Fächer und von der Seite gesehen wie ein Trapez. Um genau zu sein, gibt es eine glatte Kurve zwischen den Gipfeln und Tälern.

Mit Blick auf den Querschnitt ist der Querschnitt des Talteils eine intelligente Kurve, die wie ein Viertel einer elliptischen Kurve aussieht. Andererseits ist der Querschnitt des Gebirgsteils etwas kompliziert.

analyze.jpgcurve.jpg

Auch dies ist für den Artikel nicht sehr relevant, aber der untere Teil war ziemlich dick, ungefähr 3 mm. Zuerst fragte ich mich, ob ich es mit einer Schere schneiden könnte, aber ich musste eine Fadensäge verwenden, weil das Sägeblatt nicht zahnig war.

Legen Sie eine Richtlinie fest

Überlegen Sie anhand dieser Informationen, wie die Form reproduziert werden soll.

Zunächst werden wir als grundlegende Richtlinie Dinge betrachten, die auf der Mitte der Flasche basieren. Insbesondere werden wir, wie in der folgenden Abbildung gezeigt, versuchen, den Festkörper zu reproduzieren, indem wir die Querschnittsform jedes Mal in Richtung des Azimutwinkels θ mit dem Zentrum als Referenz berechnen und akkumulieren.

concept.jpg

In Bezug auf die Reproduktion der Querschnittsform müssen als nächstes die folgenden drei verschiedenen Arten von Kurven erzeugt werden.

Vielleicht könnte es in einer Formel zusammengefasst werden, aber ich kann mir das nicht vorstellen. Deshalb habe ich mich dieses Mal entschlossen, die Spline-Kurve zu verwenden (Spline bei Problemen).

Reproduktion der Kurve durch Spline

Wie oben erwähnt, betrachten wir, wie drei verschiedene Arten von Kurven basierend auf einer Variablen erzeugt werden, die als Azimutwinkel $ θ $ bezeichnet wird.

Ziehen Sie zunächst in Betracht, die Kurve des Talteils mit einer Spline-Funktion auszudrücken. Wie Sie sehen können, hat diese Kurve ungefähr die Form eines Bogens auf einer Ellipse, sodass es nicht schwierig ist, sie mit einem Spline darzustellen.

Der Einfachheit halber verwenden wir es als perfekten Kreis anstelle einer Ellipse. Wenn Sie es auf eine Ellipse zurücksetzen möchten, können Sie es vertikal vergrößern oder verkleinern.

fig01.png

Zeichnen Sie einen Kreis wie oben gezeigt. Ordnen Sie $ N $ Kontrollpunkte in gleichen Intervallen auf dem Bogen im 4. Quadranten (unten rechts) an und zeichnen Sie eine kubische Spline-Kurve, die sie verbindet. Diese Kurve wird durch alle Kontrollpunkte geführt. Es passt nicht genau zum Bogen, aber es ist eine Kurve, die für das menschliche Auge nicht zu unterscheiden ist. Außerdem ist $ N = 9 $.

fig02.png

Als nächstes mache ich eine Kurve für den Bergteil. Hier werde ich die Kurve des Tals verarbeiten und die Kurve des Berges nachahmen, wie sie grob beobachtet wird.

Insbesondere wird der Kontrollpunkt $ (x_i, y_i) $ auf dem Bogen durch Multiplizieren von $ k_i $ mit dem Mittelpunkt $ (0,0) $ des Kreises ($ 1 \ leq i \ leq N $) erweitert. Machen Sie einen groben Umriss, wie in der folgenden Abbildung gezeigt.

x'_i = x_i * k_i \\
y'_i = y_i * k_i

fig03_.png

Passen Sie den Wert von $ k_i $ so an, dass er fast gleich aussieht, während Sie einen Blick auf das aufgenommene Bild werfen. Der letzte Parameter ist

\begin{align}
K &= [k_1, k_2, k_3, ... , k_9]  \\
&= [1.00, 1.05, 1.18, 1.46, 1.36, 1.18, 1.07, 1.01, 1.00]
\end{align}

Es wurde gemacht. Die Endpunkte (k1 und k9) müssen 1,0 sein, sonst ist das Ergebnis seltsam.

Das Erhöhen der Anzahl der Kontrollpunkte $ N $ zur Wiedergabe einer genaueren Kurve kann die Qualität verbessern, ist jedoch recht schwierig einzustellen. Nach der Fertigstellung wäre es möglicherweise besser gewesen, ein oder zwei weitere Punkte hinzuzufügen, um die Genauigkeit des unteren Teils zu verbessern (vierter Punkt von links).

Die Spline-Interpolation dieser Gliederung ergibt Folgendes. Ich habe $ k_i $ angepasst, während ich die echte PET-Flasche von der Seite betrachtet habe, also sieht es sehr ähnlich aus.

fig04.png

Erstellen Sie schließlich eine Kurve für die Steigung zwischen den Gipfeln und Tälern. Dies erfolgt durch Mischen der Peak- und Valley-Kurven mit einer Variablen, die als Verformungsverhältnis $ D $ bezeichnet wird (Sie tun lediglich lineare Interpolation. % B7% 9A% E5% BD% A2% E8% A3% 9C% E9% 96% 93)).

\begin{align}
x''_i &= x_i * D + x'_i * (1-D) \\
&= x_i * (D + k_i - Dk_i) \\
y''_i &= y_i * D + y'_i * (1-D) \\
&= y_i * (D+k_i - Dk_i)
\end{align}
\quad (0 \leq D \leq 1)

fig05.png

Das Bild oben zeigt die Kurve des geneigten Teils von 0,0 bis 1,0 in Schritten von 0,2. D = 0 ist die rotviolette Linie und D = 1 ist die gelblichgrüne Linie. Sie können eine Kurve erstellen, die die Lücke zwischen Gipfeln und Tälern, z. B. Konturlinien, reibungslos ausfüllt.

Beziehung zwischen dem Azimutwinkel θ und dem Verformungsverhältnis D.

Bei der Entscheidung für die Richtlinie habe ich beschlossen, eine Kurve des Querschnitts für jeden der mehreren Azimutwinkel $ θ $ zu erstellen. Da wir eine Variable namens Verformungsverhältnis $ D $ eingeführt haben, um eine Kurve zu erstellen, müssen wir den Wert von $ D $ basierend auf dem Wert von $ θ $ ermitteln.

Ich werde einen Graphen von θ (0 bis 360 Grad) auf der horizontalen Achse und D (0 bis 1) auf der vertikalen Achse zeichnen, um diese Beziehung zu verdeutlichen. Setzen Sie zuerst für die Spitze des Berges $ D = 1 $. Der Winkelbereich, der als oben betrachtet wird, beträgt 22 Grad von der visuellen Messung (ungefähr).

graphA02.png

Setzen Sie außerdem $ D = 0 $ für den Talboden. Das sind ungefähr 10 Grad. Da es schwer zu verstehen war, weil es nicht in der Grafik angezeigt wurde, wird die Untergrenze der Y-Achse auf -0,2 festgelegt.

graphA01.png

Der weiße Teil der Lücke zwischen Orange und Blau ist der Hang zwischen dem Gipfel und dem Tal. Dieser Teil wird zwischen 0 und 1 mit einer Kurve gefüllt, aber wie sollen wir ihn füllen? Es ist cool zu sagen, dass es mathematisch so ist, aber ich bin nicht so schlau. Ich werde die Beschleunigungsfunktion hier verwenden, um sie gut auszufüllen.

Referenz: Easing Function Cheet Sheet

Nachdem ich verschiedene Dinge ausprobiert hatte, entschied ich mich für "easyInOutQuad", weil es gut aussah.

\begin{align}
y &= easeInOutQuad(x)  \\
&= 
\begin{cases}
2x^2  &(0 \leq x < \frac{1}{2}) \\
-2x^2 + 4x - 1 &(\frac{1}{2} \leq x \leq 1) 
\end{cases}
\end{align}

Das endgültige Diagramm sieht folgendermaßen aus: Beachten Sie, dass der Bereich auf der vertikalen Achse von 0 auf 1 geändert wurde.

graphA03.png

3D-Modellgenerierung

Nachdem wir die Kurven in alle Richtungen haben, werden wir sie verwenden, um ein 3D-Modell zu erstellen.

Zunächst wird der Azimutwinkel & thgr; in gleichen Intervallen (zum Beispiel alle 1 °) geschnitzt, um eine Kurve zu erzeugen. Berechnen Sie für die Kurve die an M Punkten diskreten Koordinaten. Konzentrieren Sie sich auf die Punkte auf den beiden Kurven und wählen Sie die drei Punkte aus, um ein dreieckiges Polygon zu bilden.

polygon.jpg

Komplett!

Sie können direkt mit OpenGL usw. zeichnen, aber dieses Mal werde ich die Datei im DXF-Format exportieren und mit einer 3D-Modellierungssoftware anzeigen.

Da ich den Code dieses Mal in Python geschrieben habe, habe ich die Bibliothek ezdxf verwendet, die das DXF-Format in Python verarbeiten kann. Das folgende Bild zeigt die Ausgabedatei mit der Software Modo.

render1.jpg render2.jpg

Hier ist das Ergebnis der Zuweisung von Materialien und des Renderns [^ 1].

render5.JPG

Dies ist das Ergebnis, das in Blender angezeigt wird. Das AutoCAD DXF-Import-Plug-In muss aktiviert sein.

render4.jpg

Es sieht von der Seite gut aus, sieht aber von unten nicht sehr ähnlich aus. Vielleicht liegt es daran, dass die Unebenheiten nicht ausreichen oder dass sie nicht gerundet sind. Hmm ...

Quellcode

Ich glaube nicht, dass die meisten Leute es lesen werden, also werde ich es zusammenfalten.

Python-Quellcode anzeigen

Benötigt NumPy-, SciPy- und ezdxf-Bibliotheken.

petaloid.py


from typing import List, Tuple
import math
import numpy as np
from scipy.interpolate import splprep, splev
import ezdxf


#Definition des Typhinweises
Point2D = Tuple[float, float]
Point3D = Tuple[float, float, float]


def mix(a: float, b: float, x: float) -> float:
    """Lineare interne Teilung x=Wenn 0 a, x=Wenn 1 b"""
    return b * x + a * (1.0 - x)


def easeInOutQuad(x: float) -> float:
    """Lockerungsfunktion"""
    if x < 0.5:
        return 2.0 * x * x
    else:
        return -2 * x * x + 4 * x - 1


def calcDeformRate(t: float) -> float:
    """
Finden Sie das Kurvenverformungsverhältnis D, das dem Azimutwinkel t entspricht
    :param t:Richtungswinkel(Die Einheit ist Grad).. Wenn der durch 72 geteilte Rest 0 ist, entspricht er dem Tal, und wenn er 36 ° beträgt, entspricht er dem konvexen Teil.
    :return:Verformungsverhältnis D.(0~1)
    """
    t = math.radians(math.fmod(t, 72.0))
    M = math.radians(72.0)  #Winkelbereich für einen Vorsprung
    k = math.radians(5.0)  #Winkelbereich des Tals
    tL = math.radians(25.0) - k  #Eine Seitengrenze des Berges
    tR = (M - k) - tL  #Die andere Seite des Berges

    if t < k or t > M - k:
        return 0.0  #Talteil
    elif t < k + tL:
        return easeInOutQuad((t-k) / tL)  #Geneigt
    elif t < tR:
        return 1.0  #Bergteil
    else:
        return easeInOutQuad(((M-k) - t) / tL)  #Geneigt(Umkehren)


def curve(angle: float, div_num: int) -> List[Point2D]:
    """
Berechnen Sie die äußere Kurve gemäß dem angegebenen Azimutwinkel
    :param angle:Richtungswinkel(0~360°)
    :param div_num:Die Anzahl der Punkte, aus denen die Kurve besteht. Je mehr es ist, desto glatter ist es
    :return:Eine Folge von Punkten, die eine Kurve darstellen
    """

    # degree -> radian
    angle = math.fmod(angle, 360.0 / 5)  #Da es sich um ein Fünfeck handelt, werden 360 Grad in 5 gleiche Teile geteilt.

    #Finden Sie das Verformungsverhältnis D, das dem Azimutwinkel entspricht(D im Tal=0, D in den Bergen=1)
    D = calcDeformRate(angle)

    #Finden Sie das Verformungsverhältnis jedes Kontrollpunkts
    #Im Talteil befinden sich alle Kontrollpunkte auf der linken Seite(1.0)Und es wird ein Bogen
    #Im Gebirgsteil zeichnen alle Kontrollpunkte eine bestimmte Kurve mit dem Verhältnis rechts
    #Andere Teile(Berghang)Zeichnet nun eine interpolierte Kurve gemäß dem Wert von D.
    r_rate = [
        mix(1.00, 1.00, D),
        mix(1.00, 1.05, D),
        mix(1.00, 1.18, D),
        mix(1.00, 1.46, D),
        mix(1.00, 1.36, D),
        mix(1.00, 1.18, D),
        mix(1.00, 1.07, D),
        mix(1.00, 1.01, D),
        mix(1.00, 1.00, D)]
    #Finden Sie die Position des Kontrollpunkts
    xs = []
    ys = []
    n = len(r_rate)
    for i in range(n):
        deg = i * 90.0 / (n - 1)
        rad = math.radians(deg)
        x = r_rate[i] * math.sin(rad)
        y = r_rate[i] * math.cos(rad)
        xs.append(x)
        ys.append(y)
    #Zeichnen Sie eine kubische Spline-Kurve, um alle Kontrollpunkte zu durchlaufen
    spline = splprep([xs, ys], s=0, k=3)[0]
    detail = np.linspace(0, 1, num=div_num, endpoint=True)
    ix, iy = splev(detail, spline)
    points = list(zip(ix, iy))
    return points


def main():
    #Machen Sie einen kleinen Vorsprung in der Mitte unten
    num_bottom_point = 8  #Punktzahl der Mikroprojektionen in der Mitte unten
    bottom_width = 0.2  #Mittlere Bodengröße
    bottom_height = 0.05  #Zentrale Bodenhöhe
    bottom_points = []
    for i in range(num_bottom_point):
        n = i / num_bottom_point
        angle = n * math.pi
        x = n * bottom_width
        #Y mit cos=[1.0,1.0+height]Mach eine Kurve
        y = 1.0 + (math.cos(angle) + 1) / 2 * bottom_height
        bottom_points.append((x, y))

    #Erstellen Sie eine dreidimensionale Liste von Eckpunkten, die Blütenblattfiguren darstellen
    num_curve: int = 180  #Anzahl der Azimutunterteilungen(360 jedes Mal,180 ist alle 2 mal)
    num_point: int = 50  #Ungefähre Anzahl von Kurven in einer Richtung(Einschließlich des Mittelpunkts)
    num_point_curve = num_point - num_bottom_point  # (Ohne den Mittelpunkt)
    aspect_adjust: float = 0.75  #Einstellwert für das Seitenverhältnis
    vertices: List[Point3D] = []
    for i in range(num_curve):
        #Finden Sie die Kurve für jede Richtung
        theta_deg = 360.0 / num_curve * i
        theta_rad = math.radians(theta_deg)
        points1 = curve(theta_deg, num_point_curve)

        #Verbinden Sie sich mit dem kleinen Vorsprung in der Mitte
        points2: List[Point2D] = [*bottom_points]
        for p in points1:
            #Über die Kurve(X)Drücken Sie ein wenig in die Richtung und machen Sie den freien Teil zu einer ebenen Fläche(Was für ein heikler Prozess ...)
            x = bottom_width + p[0] * (1.0 - bottom_width)
            y = p[1]
            points2.append((x, y))

        #In 3D-Koordinaten konvertieren
        c = math.cos(theta_rad)
        s = math.sin(theta_rad)
        for p in points2:
            x2 = p[0]
            y2 = p[1]
            x3 = x2 * c
            y3 = y2 * aspect_adjust  #Passen Sie das Seitenverhältnis an
            z3 = x2 * s
            vertices.append((x3, y3, z3))

    #In Dreiecke teilen
    indices: List[Tuple[int, int, int]] = []
    for angle in range(num_curve):
        a0 = angle
        a1 = (angle + 1) % num_curve
        for i in range(num_point - 1):
            i00 = a0 * num_point + i
            i01 = a0 * num_point + i + 1
            i10 = a1 * num_point + i
            i11 = a1 * num_point + i + 1
            if i != 0:  #Nur die Mitte ist ein Dreieck. Schließen Sie es daher aus, damit es sich nicht überlappt
                indices.append((i00, i10, i11))
            indices.append((i11, i01, i00))

    #Ausgabe mit dxf
    #Ich habe es in Scheitelpunkt und Index unterteilt, aber da das 3D-Gesicht von dxf nur Scheitelpunkte hat,
    #Synthetisieren Sie eine Liste von Eckpunkten
    triangles: List[Tuple[Point3D, Point3D, Point3D]] = []
    for i in indices:
        v1 = vertices[i[0]]
        v2 = vertices[i[1]]
        v3 = vertices[i[2]]
        triangles.append((v3, v2, v1))
    doc = ezdxf.new('R2010')  # MESH requires DXF R2000 or later
    msp = doc.modelspace()
    for t in triangles:
        msp.add_3dface(t)
    doc.saveas("petaloid.dxf")


if __name__ == '__main__':
    main()

Die verbleibenden Herausforderungen

Ich bin nicht mehr motiviert. Wenn Sie eine fremde Person haben, die ein vollständigeres Blütenblatt herausfordern möchte, beziehen Sie sich bitte darauf.

Am Ende

Q. Warum nur der Boden? Was ist mit dem Körper? A. Ich bin erschöpft \ _ (: 3 "∠) \ _

[^ 1]: Nach dem Import von DXF wird Mesh CleanUp ausgeführt, um Polygone zu kombinieren. Zusätzlich wird eine Unterteilungsfläche verwendet, um die Form zu glätten.

Recommended Posts

Erzeugen Sie diese Form des Bodens einer Haustierflasche
Eine Geschichte, die den Aufwand für Betrieb / Wartung reduziert
[Python] Ein Programm, das die Anzahl der Täler zählt
Erstellen Sie einen BOT, der die Discord-URL verkürzt
#Eine Funktion, die den Zeichencode einer Zeichenfolge zurückgibt
Eine Geschichte, die die Lieferung von Nico Nama analysierte.
[Python] Ein Programm, das die Positionen von Kängurus vergleicht.
Ein Werkzeug, das die Gacha von Soshage automatisch dreht
Python-Skript, das den Inhalt zweier Verzeichnisse vergleicht
Beim Inkrementieren des Werts eines Schlüssels, der nicht vorhanden ist
pandas Ruft den Namen einer Spalte ab, die ein bestimmtes Zeichen enthält
Eine Formel, die einfach das Alter ab dem Geburtsdatum berechnet
Diskriminierung der Agari-Form von Mahjong
Eine Funktion, die die Verarbeitungszeit einer Methode in Python misst
Die Geschichte der Erstellung einer Website, auf der die Veröffentlichungsdaten von Büchern aufgeführt sind
Ich habe einen schlaffen Bot gemacht, der mich über die Temperatur informiert
Generieren Sie eine Liste aufeinanderfolgender Zeichen
[Python] Ein Hinweis, dass ich das Verhalten von matplotlib.pyplot zu verstehen begann
Die Geschichte des Exportierens eines Programms
Die Geschichte, ein Modul zu erstellen, das E-Mails mit Python überspringt
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
Eine Geschichte, die die Gegenwart von Qiita mit Qiita API + Elasticsearch + Kibana visualisiert
[Python] Ein Programm, das die Anzahl der Schokoladensegmente berechnet, die die Bedingungen erfüllen
Ich habe einen Kalender erstellt, der den Verteilungsplan von Vtuber automatisch aktualisiert
[Python] Ein Programm, das die Anzahl der gepaarten Socken berechnet
Generieren Sie eine Liste mit der Anzahl der Tage im aktuellen Monat.
Erzeugt halbautomatisch eine Beschreibung des Pakets, das in PyPI registriert werden soll
Ich habe einen Korpusleser geschrieben, der die Ergebnisse der MeCab-Analyse liest
Die Geschichte der Entwicklung einer WEB-Anwendung, die automatisch Fangkopien generiert [MeCab]
Treffen Sie eine Methode einer Klasseninstanz mit der Python Bottle Web API
So erstellen Sie einen Wrapper, der die Signatur der zu umschließenden Funktion beibehält
Ein Hinweis zu den Funktionen der Standard-Linux-Bibliothek, die sich mit Zeit befasst
Die Geschichte, ein Paket zu erstellen, das den Betrieb von Juman (Juman ++) & KNP beschleunigt
Aus einem Buch, das die Denkweise des Programmierers interessanterweise gelernt hat (Python)
[Python] Hinweis: Selbst erstellte Funktion zum Ermitteln des Bereichs der Normalverteilung
Dies und das der Einschlussnotation.
Klasse, die die API von DMM trifft
Messen Sie die Assoziationsstärke in einer Kreuztabelle
Ein Memo, das die Achsenspezifikation der Achse erklärt
Holen Sie sich den Dateinamen des Verzeichnisses (glob)
Die Geschichte der Verarbeitung A von Blackjack (Python)
Beachten Sie den Abschluss eines zeitaufwändigen Befehls
[Python] Ein Programm, das die Partitur rundet
Ordnen Sie die Zahlen spiralförmig an
Sammlung von Numpy, Pandas Tipps, die häufig auf dem Feld verwendet werden
Die Geschichte der IPv6-Adresse, die ich auf ein Minimum beschränken möchte
Lassen Sie uns ein Clustering durchführen, das eine schöne Vogelperspektive auf den Textdatensatz bietet
Die Geschichte der Erstellung einer Webanwendung, die umfangreiche Lesungen mit Django aufzeichnet
Die Geschichte von Django, wie er eine Bibliothek erstellt, die vielleicht etwas nützlicher ist
[Bot dekodieren] Ich habe versucht, einen Bot zu erstellen, der mir den Rassenwert von Pokemon angibt
Implementierung eines Modells, das Wechselkurse (Dollar-Yen-Kurs) durch maschinelles Lernen vorhersagt
Die Geschichte, einen Line Bot zu erstellen, der uns den Zeitplan für die Wettbewerbsprogrammierung erzählt
So erstellen Sie einen Raspberry Pi, der die Tweets eines bestimmten Benutzers spricht
Ein Modell, das die Gitarre mit fast.ai identifiziert
So berechnen Sie die Volatilität einer Marke