2014-09-02 3 views
5

Roassal이 한 노드에서 다른 노드로 가장자리를 그릴 수있는 방법이 있습니까?Roassal에서 한 노드에서 자신까지의 가장자리

많은 예제를 살펴 봤지만 소스 코드에 가장자리를 추가하는 것만으로는 아무 것도 찾을 수 없습니다.

view shape rectangle size: 1. 
view nodes: (1 to: 5). 
view shape arrowedLine. 
view 
    edges: ((OrderedCollection new) add: (1->1); add: (2->2); add: (3->3); add: (4->4); add: (5->5); yourself) 
    from: #key 
    to: #value. 
view circleLayout. 

는 전혀 에지를 생성하지 않는다.

+2

일이 너무이 싶습니다 – Hendekagon

답변

3

Roassal이 그런 종류의 가장자리를 구현하는지 확신 할 수 없습니다. Roassal2에서 같은 것을 시도했지만 가장자리가 만들어졌지만 표시되지 않았습니다. 원점과 끝점이 같은 점을 만드는 선이 만들어지는 것 같습니다.


RTDirectedLine>>pointsFrom: from To: to 
    | point mid | 
    from = to 
     ifTrue: [ 
      mid := to * (1 - offset) + (from * offset). 
      point := from + (50 @ 50). 
      ^Array with: from - (10 @ 0) with: point with: to - (0 @ 10) ] 
     ifFalse: [ 
      mid := to * (1 - offset) + (from * offset). 
      point := from + (mid - from) rightRotated. 
      ^Array with: from with: point with: to ] 

그런 다음 작업 영역에서 실행할 수 있습니다 :


| b | 
b := RTGraphBuilder new. 
b nodes 
    size: 20; 
    color: Color gray. 
b edges 
    directed; 
    connectTo: #yourself. 

b layout circle. 
b addAll: (1 to:5). 

b open. 
b view canvas 
당신이이 경우에 다른 동작을 지정하여 베 지어 선을 다시 사용할 수있는 해결 방법으로


01 23,516,

이 표시되어야합니다

http://cdn.imghack.se/images/1aaea2de365d0a16818ec8bcf991348a.png