This commit is contained in:
2021-09-03 06:45:50 +02:00
parent 4b97fda8f2
commit 2cd4b781fb
4 changed files with 17 additions and 11 deletions

View File

@@ -21,11 +21,13 @@ class RopeInteractiveDot:
for object_ in self.scene.nrd_objects:
if object_.__class__.__name__ == "Rope":
for node in object_.nodes:
if math.sqrt(sum((node.position - self.position) ** 2)) < self.forcefield_range:
force_vector = node.position - self.position
force_vector /= math.sqrt(sum(force_vector ** 2))
force_vector *= self.force
if node.locked is False:
if math.sqrt(sum((node.position - self.position) ** 2)) < self.forcefield_range:
force_vector = node.position - self.position
full_force_vector = (force_vector / math.sqrt(sum(force_vector ** 2))) * self.forcefield_range
force_vector = full_force_vector - force_vector
force_vector /= self.forcefield_range / self.force
node.position += force_vector
node.position += force_vector

View File

@@ -36,7 +36,7 @@ class Rope:
self.a.position = center - connection_vector
def __init__(self, position, length, nodes_n, nodes_r, rope_width, scene, gravity=1, start_angle=1,
node_color=(255, 100, 100), rope_color=(255, 160, 160)):
balance_amount=20, node_color=(255, 100, 100), rope_color=(255, 160, 160)):
self.position = position
self.length = length
self.nodes_n = nodes_n
@@ -44,6 +44,7 @@ class Rope:
self.rope_width = rope_width
self.gravity = gravity
self.start_angle = start_angle
self.balance_amount = balance_amount
self.scene = scene
self.node_color = node_color
self.rope_color = rope_color
@@ -69,7 +70,7 @@ class Rope:
for node in self.nodes:
node.progress(self.gravity)
for _ in range(6):
for _ in range(self.balance_amount):
for connection in self.connections:
connection.balance()