[Blender x Python] Lassen Sie uns eine Menge Susanne ordentlich arrangieren !!

Inhaltsverzeichnis

  1. Lassen Sie eine Susanne erscheinen
  2. Ordnen Sie Susanne in einer Reihe an
  3. Ordnen Sie Susanne in zwei Dimensionen an
  4. Ordnen Sie Susanne in drei Dimensionen an
  5. Beispielcode

0. Lassen Sie eine Susanne erscheinen

Dies ist der Code, mit dem eine im vorherigen Artikel vorgestellte Susanne angezeigt wird. Dieses Mal werden wir dies anwenden.

import bpy

bpy.ops.mesh.primitive_monkey_add(
      size=2,
      enter_editmode=False,
      align='WORLD',
      location=(0, 0, 0),
      scale=(1, 1, 1)
      )

Es mag auf den ersten Blick lang erscheinen, aber es war eine Geschichte, die man einfach denken kann, indem man Informationen abstrahiert, komprimiert und symbolisiert (↓).

===>primitive_monkey_add(□,□,□,□,□)

Code Bedeutung: Susanne erscheint. Zu diesem Zeitpunkt können Sie die Position und Größe ändern.


1. Ordnen Sie Susanne in einer Reihe an

Iteriert mit einem Mechanismus namens ◯ ** for loop **. Der Schlüssel zum Verständnis der iterativen Verarbeitung ist

** Anzahl der Prozesse ** Wann ** Numerischer Wert, der sich mit der Verarbeitung ändert **

** Denken Sie separat **.

Ich bin mir momentan nicht sicher, aber es ist okay !!

1-0.x Positionieren Sie die Koordinaten um 1

◯ Der Punkt ist, dass der numerische Wert, der sich mit der Verarbeitung ändert, um eins zunimmt.

import bpy

#i ist 0 → 1 → 2 → 3 → 4
for i in range(0,5):
    bpy.ops.mesh.primitive_monkey_add(
      size=2,
      enter_editmode=False,
      align='WORLD',
      #Achtung ↓
      location=(i, 0, 0),
      scale=(1, 1, 1)
    )

Wenn der obige Code symbolisiert (abstrahiert) ist,

i → 0,1,2,3,4 : ===>primitive_monkey_add(□,□,□,□,□)

Rufen Sie an wie.

Bedeutung: Jedes Mal, wenn ich den Vorgang wiederhole, erhöht er sich um ** 1. Wenn i ** 0 <= i <5 ** erfüllt, wird der Prozess des Erscheinens von Susanne ausgeführt. Ersetzen Sie dann den Wert von i durch den Wert der x-Koordinate.


Die Anzahl der Bearbeitungen beträgt das Fünffache Der numerische Wert, der sich mit der Verarbeitung ändert, ist 0 → 1 → 2 → 3 → 4.

Wenn Sie dies tun, sieht es wie im Bild unten aus. Irgendwie süß .. ??

スクリーンショット 2020-11-11 14.14.48.png


◯ Punkt: ** Bereich (von wo nach wo) ** Es wird verwendet, um den Bereich der iterativen Verarbeitung zu bestimmen.


1-1.x Koordinaten werden um 3 verschoben (Teil 1)

◯ Punkt ist der Teil, an dem die x-Koordinate von Susanne als ** i * 3 ** geschrieben wird. Das * -Symbol ist ein Multiplikationssymbol.

import bpy

#i ist 0 → 1 → 2 → 3 → 4
for i in range(0,5):
    bpy.ops.mesh.primitive_monkey_add(
      size=2,
      enter_editmode=False,
      align='WORLD',
      #Achtung ↓
      location=(i * 3, 0, 0),
      scale=(1, 1, 1)
    )

スクリーンショット 2020-11-11 14.51.16.png

Die x-Koordinate von Susanne ist i * 3. Mit anderen Worten Erstverarbeitung (i = 0) → ** i * 3 = 0 ** Zweiter Verarbeitungszeitpunkt (i = 1) → ** i * 3 = 3 ** Dritter Zeitpunkt der Verarbeitung (i = 2) → ** i * 3 = 6 ** 4. Verarbeitung (i = 3) → ** i * 3 = 9 ** 5. Prozess (i = 4) → ** i * 3 = 12 **

1-2. Platziere die x-Koordinaten um 3 (Teil 2)

◯ Der Punkt liegt im Bereich ().

import bpy

#i ist 0 → 3 → 6 → 9 → 12
for i in range(0,13,3):
    bpy.ops.mesh.primitive_monkey_add(
      size=2,
      enter_editmode=False,
      align='WORLD',
      #Achtung ↓
      location=(i, 0, 0),
      scale=(1, 1, 1)
    )

スクリーンショット 2020-11-11 14.51.16.png

range () kann range (erster Wert, letzter Wert, Schritt) sein Sie können entscheiden, wie viele Nummern Sie im Bereich von der ersten bis zur letzten Nummer ** überspringen möchten.

Mit anderen Worten bedeutet "für i im Bereich (0,13,3)", dass alle drei Zahlen von 0 ausgewählt und i zugewiesen werden, was im Bereich von i <13 wiederholt wird. ⬇️ 0 1 2 3 4 5 6 7 8 9 10 11 12

Erstverarbeitung → ** i = 0 ** Zweiter Bearbeitungszeitpunkt → ** i = 3 ** 3. Verarbeitung → ** i = 6 ** 4. Verarbeitung → ** i = 9 ** 5. Prozess → ** i = 12 **


2. Ordnen Sie Susanne in zwei Dimensionen an

◯ Der Punkt ist, dass ** eine andere for-Schleife innerhalb der for-Schleife ** liegt.

import bpy

#i ist 0 → 3 → 6 → 9 → 12
for i in range(0,13,3):
    for j in range(0,13,3):
        bpy.ops.mesh.primitive_monkey_add(
          size=2,
          enter_editmode=False,
          align='WORLD',
          #Achtung ↓
          location=(i, j, 0),
          scale=(1, 1, 1)
        )

スクリーンショット 2020-11-11 16.12.06.png

Wenn symbolisiert (abstrahiert),

i = 0→3→6→9→12:
    j = 0→3→6→9→12:
        ===>primitive_monkey_add(□,□,□,□,□)

Rufen Sie an wie.

das ist,

( i , j ) = (0,0),(0,3),(0,6),(0,9),(0,12),
            (3,0),(3,3),(3,6),(3,9),(3,12),
            (6,0),(6,3),(6,6),(9,9),(12,12),
            (9,0),(9,3),(9,6),(9,9),(9,12),
            (12,0),(12,3),(12,6),(12,9),(12,12)

darüber.


3. Ordnen Sie Susanne in drei Dimensionen an

◯ Es ist die zuvor erwähnte Anwendung.

import bpy

for i in range(0,13,3):
    for j in range(0,13,3):
        for k in range(0,13,3):
            bpy.ops.mesh.primitive_monkey_add(
              size=2,
              enter_editmode=False,
              align='WORLD',
              #Achtung ↓
              location=(i, j, k),
              scale=(1, 1, 1)
            )

スクリーンショット 2020-11-11 17.20.33.png

4. Beispielcode

◯ Nur der Beispielcode wird zusammengefasst.

4-0. Code, der nur eine Susanne erscheinen lässt

import bpy

bpy.ops.mesh.primitive_monkey_add(
      size=2,
      enter_editmode=False,
      align='WORLD',
      location=(0, 0, 0),
      scale=(1, 1, 1)
      )

4-1. Code, um Susanne in einer Reihe anzuordnen (Verschiebung um 1)

import bpy

#i ist 0 → 1 → 2 → 3 → 4
for i in range(0,5):
    bpy.ops.mesh.primitive_monkey_add(
      size=2,
      enter_editmode=False,
      align='WORLD',
      #Achtung ↓
      location=(i, 0, 0),
      scale=(1, 1, 1)
    )

4-2. Code zum Anordnen von Susanne in einer Reihe (Verschiebung um 3: Teil 1)

import bpy

#i ist 0 → 1 → 2 → 3 → 4
for i in range(0,5):
    bpy.ops.mesh.primitive_monkey_add(
      size=2,
      enter_editmode=False,
      align='WORLD',
      #Achtung ↓
      location=(i * 3, 0, 0),
      scale=(1, 1, 1)
    )

4-3. Code zum Anordnen von Susanne in einer Reihe (Verschiebung um 3: Teil 2)

import bpy

#i ist 0 → 3 → 6 → 9 → 12
for i in range(0,13,3):
    bpy.ops.mesh.primitive_monkey_add(
      size=2,
      enter_editmode=False,
      align='WORLD',
      #Achtung ↓
      location=(i, 0, 0),
      scale=(1, 1, 1)
    )

4-4. Code zum zweidimensionalen Anordnen von Susanne

import bpy

#i ist 0 → 3 → 6 → 9 → 12
for i in range(0,13,3):
    for j in range(0,13,3):
        bpy.ops.mesh.primitive_monkey_add(
          size=2,
          enter_editmode=False,
          align='WORLD',
          #Achtung ↓
          location=(i, j, 0),
          scale=(1, 1, 1)
        )

4-5 Code zum dreidimensionalen Anordnen von Susanne

import bpy

for i in range(0,13,3):
    for j in range(0,13,3):
        for k in range(0,13,3):
            bpy.ops.mesh.primitive_monkey_add(
              size=2,
              enter_editmode=False,
              align='WORLD',
              #Achtung ↓
              location=(i, j, k),
              scale=(1, 1, 1)
            )

4-6. Codes in einem Kreis angeordnet

import bpy
import math

#Weisen Sie einer Variablen eine Nummer zu
#Um das Ändern von Nummern zu vereinfachen
n = 12
r = 10.0
for i in range(0, n):
    rad = 2 * math.pi * i /n  #Winkelberechnung 2π i/n
    x = r * math.cos(rad) #x Koordinatenberechnungsradius*cosθ
    y = r * math.sin(rad) #y Koordinatenberechnungsradius*sinθ
    
    bpy.ops.mesh.primitive_monkey_add(
              size=2,
              enter_editmode=False,
              align='WORLD',
              #Achtung ↓
              location=(x, y, 0),
              scale=(1, 1, 1)
            )

スクリーンショット 2020-11-11 17.59.30.png

4-7 Spiral angeordnete Schnüre

import bpy
import math

n = 144
r = 10.0
for i in range(0, n):
    rad = 2 * math.pi * i /24  #Winkelberechnung 2π i/24
    x = (r * i)/10 *  math.cos(rad) #x Koordinatenberechnungsradius*cosθ
    y = (r * i)/10 *  math.sin(rad) #y Koordinatenberechnungsradius*sinθ

    bpy.ops.mesh.primitive_monkey_add(
              size=2,
              enter_editmode=False,
              align='WORLD',
              #Achtung ↓
              location=(x, y, 0),
              scale=(1, 1, 1)
            )

スクリーンショット 2020-11-11 18.46.00.png

4-8. Code, um eine Spirale zu bilden

import bpy
import math

n = 144
r = 10.0
for i in range(0, n):
    rad = 2 * math.pi * i /12  #Winkelberechnung 2π i/12
    x = r * math.cos(rad) #x Koordinatenberechnungsradius*cosθ
    y = r * math.sin(rad) #y Koordinatenberechnungsradius*sinθ
    
    bpy.ops.mesh.primitive_monkey_add(
              size=2,
              enter_editmode=False,
              align='WORLD',
              #Achtung ↓
              location=(x, y, i),
              scale=(1, 1, 1)
            )

スクリーンショット 2020-11-11 18.10.43.png

Recommended Posts

[Blender x Python] Lassen Sie uns eine Menge Susanne ordentlich arrangieren !!
[Blender x Python] Lass uns zufällig meistern !!
[Blender x Python] Lass uns die Rotation meistern !!
[Blender x Python] Lass uns das Material beherrschen !!
[Blender x Python] Beginnen wir mit Blender Python !!
[Blender x Python] Denken Sie an Code mit Symbolen
Python, das viele Excel zu einem Excel zusammenführt
Python + Selen zu GW viele Mail-Anzeigen
Ich möchte viele Prozesse von Python aus starten
2.x, 3.x Serienzeichencode von Python
Das Ausführen einer großen Anzahl von Python3 Executor.submit verbraucht möglicherweise viel Speicher.
Ich habe viele Dateien für die RDP-Verbindung mit Python erstellt
[Blender Python] Ordnen Sie benutzerdefinierte Eigenschaftsdaten in template_list () des UI-Layouts an
Ich habe viel recherchiert, wie Python ausgeführt wird
Eine Aufzeichnung zum Patchen eines Python-Pakets
Python x GIS-Grundlagen (3)
Eine gute Beschreibung der Python-Dekorateure
Lassen Sie uns eine GUI mit Python erstellen.
[Python] Ein Memorandum der schönen Suppe4
Eine kurze Zusammenfassung der Python-Sammlung
Grundlagen von Python x GIS (Teil 2)
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Große Pandas Lass uns viel lernen
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Lassen Sie uns eine probabilistische Ausbreitungsmethode (Python) erstellen.
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Erstellen Sie ein Beziehungsdiagramm von Python-Modulen
Erstellen wir eine virtuelle Umgebung für Python
Erstellen wir mit Python eine kostenlose Gruppe
Lassen Sie uns mit Python langsam sprechen
[Python] Ruft eine Liste der Instanzvariablen ab
[Python] [Meta] Ist der Python-Typ ein Typ?
Erstellen Sie ein Webframework mit Python! (1)
Lassen Sie uns eine Kombinationsberechnung mit Python durchführen
Die Geschichte der Verarbeitung A von Blackjack (Python)
Machen wir einen Twitter-Bot mit Python!
[Python] Nur eine Liste der Ordner abrufen
Erstellen Sie ein Webframework mit Python! (2)
Memorandum zum Löschen von Python-Strings
[Circuit x Python] So ermitteln Sie die Übertragungsfunktion eines Schaltkreises mit Lcapy