현재 그래프의 가장자리를 나타 내기 위해 선 그래픽을 사용하고 있습니다. 그래도 방향을 보여줄 수 있으면 좋을 것입니다!Kivy : 선 그래픽 편집
나는 빨간 팁 (또는 비슷한 것)을 갖도록 줄을 바꾸는 쉬운 방법이 있기를 바라고 있습니다.
원하는 경우 내 기본 코드를 제공 할 수 있지만 현재로서는 전혀 구현되지 않은 것이므로 프레임 워크를 제공 할 것입니다.
내가 가진 한 가지 아이디어는 빨간색으로 채워진 현재 줄 위에 추가 선을 그리는 것이지만 캔버스에 단일 위젯을 여러 줄 줄 수 있는지 확신 할 수 없습니까? (이것은 문제를 일으킬 것입니다).이
연결된 I 그릴 사용하고 코드 편집 라인 :
def __init__(self, **kwargs):
super(GraphEdge, self).__init__(**kwargs)
with self.canvas:
Color(self.col, 1, 1, 1)
self.line = Line(points=[100, 200, 200, 200], width = 2.0)
self.center = ((self.line.points[0]+self.line.points[2])/2,(self.line.points[1]+self.line.points[3])/2)
self.size = [math.sqrt(((self.line.points[0]-self.line.points[2])**2 + (self.line.points[1]-self.line.points[3])**2))]*2
with self.canvas.after:
Color(1,0,0,1)
Line(points=[self.line.points[0],self.line.points[1], 400,400], width = 3)
위의 코드는립니다 자세한 정보가 필요한 경우 :가
편집
는 질문 선, 마지막 부분은 캔버스에 두 번째 선을 그려 보여주는 것입니다.
나는 다음 다음과 같이 이러한 라인의 위치 (첫 번째 라인)이 작업을 수행하는 현재 나의 코드를 업데이트입니다해야합니다
아이디어를 줄 수있는 조각이 그냥if self.collide_widget(node):
distance_from_0 = [math.sqrt(((self.line.points[0]-node.center[0])**2 + (self.line.points[1]-node.center[1])**2))]*2
distance_from_1 = [math.sqrt(((self.line.points[2]-node.center[0])**2 + (self.line.points[3]-node.center[1])**2))]*2
if distance_from_0 <= distance_from_1:
if (self.connected_point_0 is False):
print "collision"
if node is not self.connected_node_1:
self.connected_point_0 = True
self.connected_node_0 = node
node.edgeList.append(self)
self.line.points = node.center + self.line.points[2:]
self.size = 50,50
self.center = (self.line.points[2],self.line.points[3])
return True
.
첫 번째 줄의 위치에 따라 두 번째 줄을 업데이트 할 수 있기를 원합니다 (노드의 크기와 같은 다른 문제가 있지만 나중에 처리 할 수 있습니다).
이 다중 그리기 아이디어가 최선의 방법은 아니며 사실 다른 것을 사용하면 훨씬 쉽게 만들 수 있습니다!
왜 캔버스에 곱하기 선을 추가 할 수 없는지 알지 못합니다. 단지 그들을 전체적으로 추가/삭제할 수 있도록 InstructionGroup에 그룹화하십시오. 하나의 아이디어는 InstructionGroup에서 파생 된 클래스를 만들고 선 (기본 선과 빨간색 팁)을 추가하는 것입니다. 그런 다음 해당 클래스의 인스턴스를 만들어 하나의 캔버스 명령어로 추가 할 수 있습니다. Btw. kivy.garden.graph를 확인하십시오. 그래프 그리기를 시작하고 사용자 정의 그래프를 작성하는 방법을 배우기에 좋은 곳입니다. – Lobsterman
이전에이 중 하나를 보지 못했습니다. 나는 그들을 밖으로 시도하고 다시보고, 감사합니다! – user124784
garden.graph를 본 후에는 실제로 내가 뭘하는지 알 수 없습니다. 그래프 이론과 같은 네트워크 그래프 생성을 허용하려고합니다. – user124784