Dreiecksfunktionen, logarithmische Funktionen, Zykloiden ... Es gibt so viele verschiedene Funktionen, Figuren und Graphen auf dieser Welt. Sie möchten ein solches Diagramm in 3D sehen, oder?
Dieses Mal möchte ich Blender und Excel verwenden. Fügen Sie die Koordinatendaten in die Excel-Datei ein und erstellen Sie ein darauf basierendes Objekt mit Blender.
Jetzt wo ich verstehe, wie es funktioniert ...
windows 10 python 3.7 Blender 2.8 pip 20.2.1
Lassen Sie uns zunächst eine Bibliothek installieren, die Excel-Dateien ändert.
$pip install openpyxl
Der Code sieht so aus
function_3Dgraph.py
import openpyxl
import math
class funcdate():
def create_wb(self,wb_name):
new_file=openpyxl.Workbook() #Erstellen Sie Daten für eine Excel-Datei.
new_file.save(wb_name+'.xlsx') #Speichern Sie es einmal.
print('Excel-Datei wird erstellt')
return new_file
def write_wb(self,cell_name,cell_value,file_name):
file=openpyxl.load_workbook(file_name+'.xlsx',data_only=True) #Laden Sie die Excel-Datei.
new_wb=file.active #Laden Sie das Blatt.
new_wb[cell_name]=cell_value #cell_mane(Zum Beispiel A1)Geben Sie einen Wert in die Zelle ein.
def write_func(self,t,file_name):
file=openpyxl.load_workbook(file_name+'.xlsx',data_only=True)
new_wb=file.active
print(new_wb)
for i in range(1,t+1):
if(i==0):
i=1
x=math.cos(i*math.pi/180) #Die Formel hier kann alles sein.
y=math.sin(i*math.pi/180) #Die Formel hier kann alles sein.
new_wb['A'+str(i)]=i #Ich werde Daten in jede Koordinate einfügen.
new_wb['B'+str(i)]=x
new_wb['C'+str(i)]=y
print(new_wb['A'+str(i)].value,new_wb['B'+str(i)].value,new_wb['C'+str(i)].value)
else:
file.save(file_name+'.xlsx')
print('Ich konnte ausfüllen')
def get_func(self,file_name,t):
file=openpyxl.load_workbook(file_name+'.xlsx',data_only=True)
wb=file.active
graph_t=wb['A'+str(t)].value #Geben Sie den Wert jeder Zelle in jede Koordinate ein.
graph_x=wb['B'+str(t)].value
graph_y=wb['C'+str(t)].value
a=[graph_t,graph_x,graph_y]
return a
test=funcdate()
test.create_wb('test_function')
test.write_func(360,'test_function')
print(test.get_func('test_function',10))
Lass es uns jetzt laufen lassen.
$python function_3Dgraph.py
Wenn Sie es ausführen, sollten Sie eine Excel-Datei haben, also öffnen Sie es bitte. Es ist in Ordnung, wenn es so in der Tabelle steht. Übrigens sieht es in einem Diagramm so aus. ・ X-Achse und Y-Achse sind getrennt ・ X-Achse und Y-Achse kombiniert
Lassen Sie uns zuerst Blender herunterladen. Download Blender Starten Sie es nach dem Herunterladen und öffnen Sie den Python-Editor. ↓ Hier Versuchen Sie dann, den folgenden Code einzugeben. Es ist leicht zu erkennen, ob Sie den ersten generierten Cube (x-Taste) löschen.
$import bpy
$bpy.ops.mesh.primitive_uv_sphere_add(segments=32, ring_count=16, radius=1.0, calc_uvs=True, enter_editmode=False, align='WORLD', location=(0.0, 0.0, 0.0), rotation=(0.0, 0.0, 0.0))
Wenn eine Kugel an den Koordinaten (0.0, 0.0, 0.0) erscheint, ist sie erfolgreich.
Fügen wir es jetzt hinzu
function_3Dgraph.py
import openpyxl
import math
import bpy
class funcdate():
def create_wb(self,wb_name):
new_file=openpyxl.Workbook()
new_file.save(wb_name+'.xlsx')
print('Excel-Datei wird erstellt')
return new_file
def write_wb(self,cell_name,cell_value,file_name):
file=openpyxl.load_workbook(file_name+'.xlsx',data_only=True)
new_wb=file.active
new_wb[cell_name]=cell_value
def write_func(self,t,file_name):
file=openpyxl.load_workbook(file_name+'.xlsx',data_only=True)
new_wb=file.active
print(new_wb)
for i in range(1,t+1):
if(i==0):
i=1
x=math.cos(i*math.pi/180)
y=math.sin(i*math.pi/180)
new_wb['A'+str(i)]=i
new_wb['B'+str(i)]=x
new_wb['C'+str(i)]=y
print(new_wb['A'+str(i)].value,new_wb['B'+str(i)].value,new_wb['C'+str(i)].value)
else:
file.save(file_name+'.xlsx')
print('Ich konnte ausfüllen')
def get_func(self,file_name,t):
file=openpyxl.load_workbook(file_name+'.xlsx',data_only=True)
wb=file.active
graph_t=wb['A'+str(t)].value
graph_x=wb['B'+str(t)].value
graph_y=wb['C'+str(t)].value
a=[graph_t,graph_x,graph_y]
return a
test=funcdate()
test.create_wb('test_function')
test.write_func(360,'test_function')
for i in range(1,360):
bpy.ops.mesh.primitive_uv_sphere_add(segments=32, ring_count=16, radius=1.0, calc_uvs=True, enter_editmode=False, align='WORLD', location=test.get_func('test_function',i), rotation=(0.0, 0.0, 0.0))
Die bpy-Bibliothek kann nur mit Blender verwendet werden. Führen Sie sie daher mit Blender aus.
** und davor ** Lassen Sie uns die openpyxl-Bibliothek in Blender verfügbar machen.
Detaillierte Erklärung zum Einfügen
Beginnen Sie als Administrator, um openpyxl mit Blender zu verwenden. (Weil gesagt wird, dass Sie keine Autorität haben ...)
Versetzen Sie Blender in den Skriptmodus, um die gerade erstellte Datei auszuführen. Du kannst immer noch gehen. Öffnen Sie dann function_3Dgraph.py und führen Sie es aus.
Wenn die Grafik herauskommt, ist es ein Erfolg! (Blenders 1 m ist klein, daher schwer zu verstehen, aber es ist eine Sinuswelle mit einer Amplitude von 1. Es ist leichter zu verstehen, wenn die Amplitude auf 10 eingestellt ist.)
Nun, die Grafik wurde so vervollständigt.
Von Blender erstellte Excel-Dateien werden übrigens in C: \ Programme \ Blender Foundation \ Blender 2.83 gespeichert.
Hier ist eine kleine mathematische Geschichte ... Dieses Mal habe ich ein Diagramm erstellt, indem ich x und y mit der Mediatorvariablen t dargestellt habe. Die Formel sieht so aus.
\left\{
\begin{array}{ll}
x=f(t) \\
y=g(t)
\end{array}
\right.
Dadurch wird ein 3D-Diagramm von $ y = f (x) $ erstellt. Wenn $ t = z $ ist, kann $ ax = by = cz (a, b, c sind beliebige Konstanten) $ und eine dreidimensionale gerade Linie erstellt werden. … Bisher haben wir über orthogonale Graphen gesprochen. Was ist also mit dem Polarformat? Angenommen, Sie haben einen Ausdruck wie diesen:
r=f(θ)
Die durch diese Gleichung dargestellte gerade Linie wird in eine horizontale Achse (x-Achse) bzw. eine vertikale Achse (y-Achse) zerlegt.
\left\{
\begin{array}{ll}
x=f(θ) \cos(θ)\\
y=f(θ) \sin(θ)
\end{array}
\right.
Jetzt können Sie einen Polardiagramm zeichnen. Eigentlich ist es eine gute Idee, für all dies eine Excel-Datei zu verwenden. ~~ Wenn du es nicht benutzt, k ~~
Warum hast du es dann zum Beispiel benutzt ...
Es wird verwendet, wenn der Graph eine solche Formel nicht versteht. Wenn die Excel-Datei Werte enthält, können Sie ein Diagramm erstellen, indem Sie auf diese verweisen.
Ich denke, es schrumpft ein wenig, aber es ist okay. Es ist kein Problem, wenn Sie es mit n multiplizieren, wenn Sie den Wert annehmen ...
Dieses Mal habe ich versucht, mit Blender mithilfe von Excel ein 3D-Diagramm zu erstellen. Als nächstes möchte ich dieses Diagramm wie eine Animation verschieben.