Live-Schnittpunkt zwischen Linie und KreisPython

Python-Programme
Anonymous
 Live-Schnittpunkt zwischen Linie und Kreis

Post by Anonymous »

Ich habe eine Linie, die sich dreht, und einen Kreis, der feststeht. Ich möchte erkennen, wann die Linie und das Objekt kollidieren, und die Farbe des Kreises entsprechend ändern. Ich verwende die Funktion Intersection(), von der ich vermute, dass sie nicht funktioniert, da Line kein VM-Objekt ist (ich bin mir eigentlich nicht so sicher, ob das nicht der Fall ist).
Wie würde ich das erreichen? Hier ist eine Vereinfachung meines Codes:

Code: Select all

class Test(Scene):
def construct(self):
b1_l = Line([-1.,-1.,0.],[3,3,0]).set_color(YELLOW).set_angle(57.5)
obj_1 = Circle(radius=.1, color=RED, fill_opacity=1).move_to([0,1.5,0])

def updateObject(obj: Mobject):
if(Intersection(obj, b1_l).has_points()):
obj.set_color(BLUE) # Never here
else:
obj.set_color(YELLOW) # Always here

obj_1.add_updater(updateObject)

self.add(obj_1)
self.play(b1_l.animate.set_angle(57.5*DEGREES + 20*DEGREES))
self.wait(0.05)
self.play(b1_l.animate.set_angle(57.5*DEGREES))
Hier wird derzeit nur ein gelber Kreis angezeigt. Wenn beide Objekte kollidieren, ändert sich nichts.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post