Сведения о вопросе

Fhohir

23:17, 13th August, 2020

Теги

ruby   graphics   drawing    

Библиотека чертежей для Ruby

Просмотров: 527   Ответов: 4

Я пытаюсь закодировать генератор блок-схем для языка, используя Ruby.

Я хотел знать, есть ли какие-либо библиотеки, которые я мог бы использовать для рисования различных фигур для различных элементов блок-схемы и написания текста для этих фигур.

Я бы действительно предпочел не писать код для рисования основных фигур,если бы это было возможно.

Может ли кто-нибудь указать мне на какую-нибудь справочную документацию с примерами использования этой библиотеки?



  Сведения об ответе

baggs

15:29, 8th August, 2020

Написать блок-схемы в виде ориентированного или неориентированного графа В программ . Graphviz имеет язык dot , который позволяет легко создавать графики. Просто сгенерируйте файл dot, запустите его через 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.


  Сведения об ответе

nYU

12:22, 4th August, 2020

Похоже, что вы будете ограничены в основном возможностями любого пользовательского агента, для которого вы создаете; если это веб-проект, то возможности рисования будут зависеть от браузера. Поскольку Ruby работает на стороне сервера,вам как минимум потребуется некоторое JavaScript, чтобы разрешить dragging/zooming, и т. д. Есть много примеров использования JavaScript для векторного рисования (просто google "javascript graphics library"), но все они требуют кодирования, и я не видел ни одной библиотеки, которая бы так элегантно абстрагировалась.

ImageMagick имеет привязку Ruby, называемую RMagick (иногда известна под другими именами, в зависимости от репозитория). ( Соединение ) Сам я им не пользовался, но думаю, что он сделает то, что вы ищете. Вам нужно будет сделать некоторое кодирование, но это по линии

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


  Сведения об ответе

pumpa

03:14, 3rd August, 2020

Простой ответ заключается в том, что (на момент написания книги) то, что вы хотите, почти наверняка не существовало. Извините!

Если вы основываетесь на Windows, то я бы искал продукт в пространстве .NET, где, как я ожидаю, вы что-то найдете. Хотя вам, вероятно, придется заплатить реальные деньги. Я полагаю, что если вы смелы, вы можете поговорить с ним, используя IronRuby.

Из среды, не являющейся MS, я бы надеялся на решение на основе Java. Как уже упоминалось, в веб-мире вы будете надеяться на что-то, основанное на JavaScript, или, вероятно, более вероятно, что-то из Flash (или, возможно, даже Silverlight?) мир.

На самом деле, если вы хотите остаться в Ruby и не возражаете против некоторого риска, Silverlight может быть способом уйти - предполагая, что материал DLR действительно работает (здесь нет опыта). Ruby - как бы мне это ни нравилось-едва ли имеет вокруг себя самую зрелую структуру GUI.

Update: с момента написания этого (приближающегося к 5 годам назад) ситуация улучшилась - немного. Хотя я все еще не знаю о каких-либо конкретных библиотеках графического рисования Ruby, здесь улучшена поддержка Graphviz (Github ) или gem install ruby-graphviz . Я обнаружил, что для простых графиков вполне возможно написать сценарий непосредственно из Ruby.


  Сведения об ответе

baggs

22:29, 9th August, 2020

Я абсолютно уверен, но проверьте каирские привязки для ruby. Панго для текста. Я сейчас расследую это дело и наткнулся на эту страницу.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться