bir nokta gibi görünecek biçimde, bir 2d üçgeninde ise bulmak için Python bir işlevi var triangles Bu (parça) gelen noktalar, dosya:Döngü
PointXY
[387.9385, 200.0]
PointXY
[200.0, 387.9385]
PointXY
[200.0, 387.9385]
PointXY
[200.0, 353.2089]
PointXY
Benim p1, p2 ve p3 köşe üçgenleri koordinatları vardır. Bana dönün herhangi bir nokta (lar) herhangi bir üçgen (ler) (veya yan tarafında) bulunan IF
benim komut dosyası yapmak istiyorum neTriangleXY
[193.0371, 0.1218346]
[193.0244, 0.1218346]
[186.0572, 0.4871899]
TriangleXY
[206.9799, 0.1218346]
[206.9756, 0.1218346]
[213.9428, 0.4871899]
TriangleXY
[193.0244, 0.1218346]
[193.0371, 0.1218346]
[200.0, 0.0]
TriangleXY
[206.9756, 0.1218346]
şöyledir: Onlar dosya bu (parça) gelen (3) p1, p2 ve p3 üçgeninden gelen özel koordinatlar ve içinde bulunan P noktası. Artık sadece tek bir P ve tek bir p1, p2 ve p3 seti için çalışıyor ve P ve tüm üçgen köşeleri p1, p2 ve p3 için çalışmasını istiyorum. Bunu benim senaryoda buna göre nasıl ayarlayacağımı bilen var mı? Benim P ve p1, p2 ve p3 bu komut dosyaları tarafından verilir:
def pointsInsideTriangles(points,triangles):
for (P in points):
for (t in triangles):
if isInsideTriangle(P,t[0],t[1],t[2]):
print("Point " + str(P) + " is inside traingle " + str(t))
Toplamda gibi bir şey olurdu:
# triangle coordinates p1 p2 p3
g = open("spheretop1.stl", "r")
m = open("TriangleXYcoordinates.gcode", "w")
searchlines = g.readlines()
file = ""
for i, line in enumerate(searchlines):
if "outer loop" in line:
p1 = map(float, searchlines[i+1].split()[1:3])
p2 = map(float, searchlines[i+2].split()[1:3])
p3 = map(float, searchlines[i+3].split()[1:3])
m.write("TriangleXY" + "\n" + str(p1) + "\n" + str(p2) + "\n" + str(p3) + "\n")
# Point coordinates P
import json
h = open("PointXYcoordinates.gcode", "r")
searchlines = h.readlines()
file = ""
for i, line in enumerate(searchlines):
if "PointXY" in line:
P = json.loads(searchlines[i+1].strip())
@ idjaw bu sorudaki bilgi yeterince açık mı? – Henry