2011-02-02 35 views
5

Xin lỗi trước là tôi đang sử dụng sai thuật ngữ và chỉnh sửa được đánh giá cao. Tôi bị cuốn hút bởi các đồ thị được chỉ dẫn, nhưng tôi chưa bao giờ có nền toán/cs để biết chúng là gì thực sự là, tôi thích công nghệ vì nó tạo ra các sơ đồ hữu ích.Thư viện PHP để tạo tệp xdot từ tệp dot

Tôi đang cố gắng tạo tính năng ứng dụng web sẽ hiển thị biểu đồ động được hướng đến trình duyệt. Gần đây tôi đã phát hiện thấy Canviz, là trình kết xuất xdot dựa trên cavas, mà tôi muốn sử dụng.

Canviz là tuyệt vời, nhưng nó ám xdot tác phẩm, trong đó (xuất hiện?) Để chứa tất cả các logic vị phức tạp

/* example xdot file */ 
digraph abstract { 
    graph [size="6,6"]; 
    node [label="\N"]; 
    graph [bb="0,0,1250,612", 
     _draw_="c 9 -#ffffffff C 9 -#ffffffff P 4 0 -1 0 612 1251 612 1251 -1 ", 
     xdotversion="1.2"]; 
    S1 [pos="464,594", width="0.75", height="0.5", _draw_="c 9 -#000000ff e 464 594 27 18 ", _ldraw_="F 14.000000 11 -Times-Roman c 9 -#000000ff T 464 588 0 15 2 -S1 "]; 
    10 [pos="409,522", width="0.75", height="0.5", _draw_="c 9 -#000000ff e 409 522 27 18 ", _ldraw_="F 14.000000 11 -Times-Roman c 9 -#000000ff T 409 516 0 15 2 -10 "]; 

    S1 -> 10 [pos="e,421.43,538.27 451.52,577.66 444.49,568.46 435.57,556.78 427.71,546.5", _draw_="c 9 -#000000ff B 4 452 578 444 568 436 557 428 546 ", _hdraw_="S 5 -solid c 9 -#000000ff C 9 -#000000ff P 3 430 544 421 538 425 548 "]; 
} 

Các tập tin tôi là tạo ra với ứng dụng của tôi là dot file, có chứa không ai trong số định vị logic

digraph g { 

    ranksep=6 
    node [ 
     fontsize = "16" 
     shape = "rectangle" 
     width =3 
     height =.5 
    ]; 
    edge [ 
    ]; 

    S1 -> 10 
}  

tôi đang tìm kiếm một thư viện PHP có thể chuyển đổi tập tin dot của tôi vào một tập tin xdot có thể được tiêu thụ bởi Canviz. Tôi nhận ra rằng chương trình dòng lệnh dot có thể làm điều này, nhưng điều này là dành cho một ứng dụng web phân phối lại PHP, và tôi muốn tránh bất kỳ nhị phân nào là phụ thuộc.

Vấn đề cốt lõi của tôi: Tôi đang tạo các tệp dot dựa trên các mối quan hệ đơn giản và tôi muốn hiển thị biểu đồ trực quan cho người dùng cuối trong trình duyệt. Tôi muốn làm điều này mà không cần phải dựa vào sự hiện diện của một chương trình nhị phân cụ thể trên máy chủ. Tôi nghĩ giải pháp tốt nhất cho việc này là Canviz + PHP để tạo các tệp xdot. Tôi đang tìm một thư viện PHP có thể làm điều này. Tuy nhiên, tôi còn cởi mở hơn với các giải pháp khác.

Trả lời

1

Bạn đã xem Image_GraphViz chưa? Nó thực sự chỉ là một wrapper cho nhị phân, nhưng từ cái nhìn của sự vật, tôi không nghĩ rằng bạn sẽ tìm thấy một cái gì đó tốt hơn và điều này ít nhất giữ cho bạn khỏi phải thực hiện cuộc gọi dòng lệnh trực tiếp từ kịch bản PHP của bạn.

$dot_obj = new Image_GraphViz(); 
$dot_obj -> load('path/to/graph.gv'); 
$xdot = $dot_obj -> fetch('xdot'); 
Các vấn đề liên quan