我現在的最終目標是獲取從文本文件中讀取的點,並將它們轉換爲3d對象。它們不需要可視化,但需要將其存儲在對象中,而不僅僅是包含x,y和z值的字符串。該文件給了我六個數字,每個x,y和z中的兩個,我想知道如何創建一個點類/對象,它將採用所有三個變量,然後是一個線對象/類,它將採用兩個點。如何在Python中創建一個3d對象/類?
2
A
回答
7
只要定義一個Point
和Line
類:
class Point(object):
def __init__(self, x=0, y=0 ,z=0):
self.x = x
self.y = y
self.z = z
class Line(object):
def __init__(self, point1=None, point2=None):
self.point1 = point1 or Point() # (0,0,0) by default
self.point2 = point2 or Point() # (0,0,0) by default
要創建點和線對象:
>>> p1 = Point(1, 2, 3)
>>> p2 = Point(4, 5, 6)
>>> line = Line(p1, p2)
2
一旦你得到了從文件中的數據(這正則表達式均適用),你需要將它輸入到一個定義爲存儲兩個點的類(它們可以是對象本身)中,例如
class Point(tuple):
@property
def x:
return self[0]
@property
def y:
return self[1]
@property
def z:
return self[2]
class Vector(object):
def __init__(self, x1, y1, z1, x2, y2, z2):
self._a = Point(x1, y1, z1)
self._b = Point(x2, y2, z2)
@property
def a(self):
return self._a
@property
def b(self):
return self._b
# Other methods here e.g.
@property
def i(self):
return self.b.x - self.a.x
@property
def j(self):
return self.b.y - self.a.y
@property
def k(self):
return self.b.z - self.a.z
def length(self):
return (self.i**2 + self.j**2 + self.k**2) ** (1/2)
相關問題
- 1. 如何創建3D對象
- 2. 如何用ruby中的對象(類)創建一個對象(類)?
- 3. 創建另一個類的Python對象
- 4. 在python中創建一個JSON對象
- 5. 在Python中創建一個空對象
- 6. 在一個對象中創建一個對象類
- 7. 如何在另一個類中創建類的對象
- 8. 如何在它的基類中創建一個子類對象?
- 9. 如何用3D對象創建UIView
- 10. 從python的另一個類創建一個類對象
- 11. 如何創建一個保持旋轉的3D對象?
- 12. 是否在Python中創建類「對象」
- 13. 如何在Python中創建JSON對象
- 14. 在python中創建一個類的對象
- 15. 在Python中創建一個隨機數的類對象
- 16. 在Android中動態創建3D對象
- 17. 如何在python中創建一個字節對象?
- 18. 如何在python中創建一個對象數組?
- 19. 在python的同一個類中創建一個類的新對象?
- 20. 如何使用Python中的另一個類對象的功能創建一個類對象的實例?
- 21. Python類和對象創建
- 22. 創建3D數組對象
- 23. 如何在一個對象內創建一個javascript對象?
- 24. 如何在一個對象內創建一個對象c#
- 25. 如何在ruby中創建一個類對象數組
- 26. 如何在Lua對象中創建一個類表成員?
- 27. 如何在Scala中創建一個類型對象的集合
- 28. 如何在Excel中創建一個java類的對象vba
- 29. 如何在Lua-C API 5.2中創建一個類對象?
- 30. 如何在D中創建一個對象(類)?
要顯示3D對象,還是隻存儲它? – juliomalegria
將字符串轉換爲數字並不重要。所以定義了兩個類'Point3D(x,y,z)'和'Line(point1,point2)'。你真的想做什麼? – delnan
我已經寫了一個教程,幾乎做你想做的:http://www.petercollingridge.co.uk/pygame-3d-graphics-tutorial/nodes-and-edges –