Fonctions triangulaires, fonctions logarithmiques, cycloïdes ... Il y a tellement de fonctions, de figures et de graphiques différents dans ce monde. Vous voulez voir un tel graphique en 3D, non?
Cette fois, j'aimerais utiliser Blender et Excel. Mettez les données de coordonnées dans le fichier Excel et créez un objet avec Blender basé sur celui-ci.
Maintenant que je comprends comment ça marche ...
windows 10 python 3.7 Blender 2.8 pip 20.2.1
Tout d'abord, installons une bibliothèque qui modifie les fichiers Excel.
$pip install openpyxl
Le code ressemble à ceci
function_3Dgraph.py
import openpyxl
import math
class funcdate():
def create_wb(self,wb_name):
new_file=openpyxl.Workbook() #Créez des données pour le fichier Excel.
new_file.save(wb_name+'.xlsx') #Enregistrez-le une fois.
print('Le fichier Excel est créé')
return new_file
def write_wb(self,cell_name,cell_value,file_name):
file=openpyxl.load_workbook(file_name+'.xlsx',data_only=True) #Chargez le fichier Excel.
new_wb=file.active #Chargez la feuille.
new_wb[cell_name]=cell_value #cell_mane(Par exemple A1)Mettez une valeur dans la cellule.
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) #La formule ici peut être n'importe quoi.
y=math.sin(i*math.pi/180) #La formule ici peut être n'importe quoi.
new_wb['A'+str(i)]=i #Je mettrai des données dans chaque coordonnée.
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('J'ai pu remplir')
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 #Entrez la valeur de chaque cellule dans chaque coordonnée.
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))
Lançons-le maintenant.
$python function_3Dgraph.py
Lorsque vous l'exécutez, vous devriez avoir un fichier Excel, veuillez donc l'ouvrir. Ce n'est pas grave si c'est dans le tableau comme ça. Au fait, cela ressemble à ceci dans un graphique. ・ L'axe X et l'axe y sont séparés ・ Axe X et axe y combiné
Commençons par télécharger Blender. Télécharger Blender Une fois téléchargé, lancez-le et ouvrez l'éditeur python. ↓ Ici Essayez ensuite de taper le code ci-dessous. Il est facile de voir si vous supprimez le premier cube généré (clé x).
$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))
Si une sphère apparaît aux coordonnées (0.0, 0.0, 0.0), c'est réussi.
Ajoutons-le maintenant
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('Le fichier Excel est créé')
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('J'ai pu remplir')
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))
La bibliothèque bpy ne peut être utilisée qu'avec Blender, alors exécutez-la avec Blender.
** et avant ** Rendons la bibliothèque openpyxl disponible dans Blender.
Explication détaillée sur la façon d'insérer
Commencez en tant qu'administrateur pour utiliser openpyxl avec Blender. (Parce qu'on dit que vous n'avez pas d'autorité ...)
Mettez Blender en mode Script pour exécuter le fichier que vous venez de créer. Vous pouvez toujours y aller. Ouvrez ensuite function_3Dgraph.py et exécutez-le.
Si le graphique sort, c'est un succès! (Le 1m de Blender est petit, donc c'est difficile à comprendre, mais c'est une onde de péché avec une amplitude de 1. Il est plus facile de comprendre si l'amplitude est réglée sur 10.)
Eh bien, le graphique a été complété comme ça.
À propos, les fichiers Excel créés par Blender sont enregistrés dans C: \ Program Files \ Blender Foundation \ Blender 2.83.
Voici une petite histoire mathématique ... Cette fois, j'ai fait un graphique en représentant x et y avec la variable médiatrice t. La formule ressemble à ceci.
\left\{
\begin{array}{ll}
x=f(t) \\
y=g(t)
\end{array}
\right.
Cela créera un graphique 3D de $ y = f (x) $. De plus, si $ t = z $, alors $ ax = by = cz (a, b, c sont des constantes arbitraires) $ et une ligne droite tridimensionnelle peut être créée. … Jusqu'à présent, nous avons parlé de graphes orthogonaux. Alors qu'en est-il du format polaire? Par exemple, supposons que vous ayez une expression comme celle-ci:
r=f(θ)
La ligne droite représentée par cette équation est décomposée en un axe horizontal (axe x) et un axe vertical (axe y), respectivement.
\left\{
\begin{array}{ll}
x=f(θ) \cos(θ)\\
y=f(θ) \sin(θ)
\end{array}
\right.
Vous pouvez maintenant dessiner un graphique polaire. En fait, c'est une bonne idée d'utiliser un fichier Excel pour tout cela. ~~ Si vous ne l'utilisez pas, k ~~
Alors pourquoi l'avez-vous utilisé, par exemple ...
Il est utilisé lorsque le graphique ne comprend pas une telle formule. S'il existe des valeurs dans le fichier Excel, vous pouvez créer un graphique en vous référant à elles.
Je pense que ça rétrécit un peu, mais ça va. Il n'y a pas de problème si vous le multipliez par n en prenant la valeur ...
Cette fois, j'ai essayé de créer un graphique 3D avec Blender en utilisant Excel. Ensuite, je voudrais déplacer ce graphique comme une animation.
Recommended Posts