문제

Ruby를 사용하여 언어용 순서도 생성기를 코딩하려고 합니다.

다양한 순서도 요소에 대한 다양한 모양을 그리고 해당 모양에 텍스트를 작성하는 데 사용할 수 있는 라이브러리가 있는지 알고 싶었습니다.

도움이 된다면 기본 모양을 그리기 위한 코드를 작성하지 않아도 된다면 정말 좋겠습니다.

누군가 해당 라이브러리 사용 예가 포함된 일부 참조 문서를 알려줄 수 있습니까?

도움이 되었습니까?

해결책

간단한 대답은 (글을 쓰는 시점에서) 당신이 원하는 것이 거의 확실히 존재하지 않았다는 것입니다.죄송합니다!

Windows 기반 사용자라면 .NET 공간에서 제품을 찾을 것입니다. 거기서 뭔가를 찾을 수 있을 것으로 기대합니다.하지만 아마도 실제 돈을 지불해야 할 것입니다.용기가 있다면 IronRuby를 사용하여 대화할 수도 있을 것 같습니다.

MS 환경이 아닌 경우에는 Java 기반 솔루션을 원합니다.이미 언급했듯이 웹 세계에서는 JavaScript 기반의 무언가를 기대하거나 아마도 Flash(또는 심지어 Silverlight?) 세계의 무언가를 기대하게 될 것입니다.

실제로 Ruby를 계속 사용하고 위험을 고려하지 않는다면 Silverlight를 사용하는 것이 좋습니다. DLR이 실제로 작동한다고 가정하면(여기서는 경험이 없습니다).Ruby는 내가 좋아하는 만큼 가장 성숙한 GUI 구조를 갖고 있지 않습니다.

업데이트:이 글을 쓴 이후(약 5년 전) 상황은 약간 개선되었습니다.아직 특정 Ruby 그래프 그리기 라이브러리에 대해 알지 못하지만 다음 항목에 대한 지원이 향상되었습니다. 그래프비즈 여기(Github) 또는 gem install ruby-graphviz.간단한 그래프의 경우 Ruby에서 직접 스크립트를 작성하는 것이 가능하다는 것을 알았습니다.

다른 팁

순서도를 방향성 또는 방향성 그래프로 작성하세요. 그래프비즈.Graphviz에는 언어가 있습니다. 그러면 그래프를 쉽게 생성할 수 있습니다.도트 파일을 생성하고 Graphiviz를 통해 실행하면 이미지를 얻을 수 있습니다.

graph {
  A -- B -- C;
  B -- D;
  C -- D [constraint=false];
}

다음과 같이 렌더링
undirected

digraph {
  A [label="start"];
  B [label="eat"];
  C [label="drink"];
  D [label="be merry"];

  A -> B -> C;
  C -> D [constraint=false];
  B -> D [ arrowhead=none, arrowtail=normal]; // reverse this edge
}

다음과 같이 렌더링
directed

Graphviz에서는 노드 모양 등을 제어할 수 있습니다.

주로 당신이 구축하는 사용자 에이전트의 기능에 따라 제한될 것 같습니다.웹 프로젝트인 경우 그리기 기능은 브라우저에 따라 달라집니다.Ruby는 서버 측에서 실행되므로 드래그/확대/축소 등을 허용하려면 최소한 JavaScript가 필요합니다.벡터 드로잉에 사용되는 JavaScript의 예가 많이 있지만(Google의 "javascript 그래픽 라이브러리"만 해당) 모두 코딩이 필요하며 이를 우아하게 추상화하는 라이브러리는 본 적이 없습니다.

ImageMagick에는 RMagick(저장소에 따라 다른 이름으로 알려짐)이라는 Ruby 바인딩이 있습니다.(링크) 나는 그것을 직접 사용하지 않았지만 그것이 당신이 찾고있는 일을 할 것이라고 믿는다.약간의 코딩이 필요하지만 이는 다음과 같습니다.

draw.rectangle(x1, y1, x2, y2)
draw.polygon(x1, y1,...,xN, yN)

완전히 확신합니다. 하지만 루비에 대한 카이로 바인딩을 확인해 보세요.텍스트용 Pango.나는 현재 조사 중이며 이 페이지를 발견했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top