[wxWidgets] Edytor SVG.

0

Siema,
Czy miał ktoś z was bliższy kontakt z wxWidgets? Mam napisać program który pobiera od użytkownika plik .svg i użytkownik może go sobie skalować, obracać itp. Nie mam pojęcia jak się za to zabrać. Proszę, dajcie jakieś wskazówki.
Dzięki.

0

Wiesz w ogóle jak wyglądają pliki SVG? Zaczął bym od tego. :) Zdaje się, że Inkscape jest otwarty na GPL, możesz sobie źródła podejrzeć tutaj: http://inkscape.org/download/?lang=en
Wychodzi na to, że będziesz rysował svg na jakiejś powierzchni, to po pierwsze. Na razie nie przejmowałbym się za bardzo resztą. ;) Rozrysuj sobie plan ogólny, podzielony na części w których implementował będziesz kolejne funkcjonalności. Zacznij raczej skromnie, a może coś z tego wyjdzie.

Wybacz, ale na tak mało precyzyjne pytanie nie mogę odpowiedzieć kodem źródłowym. ;) Chyba że:
while (!project.ready()) { project.implement_next_feature(); project.test(); } project.ship();

0

Masz rację, nie napisałem konkretnie o co mi chodzi.
Mam napisać program w którym użytkownik mógłby sobie edytować plik SVG. Wybierał by sobie plik(i), pojawiałaby się miniaturka(i) na pasku bocznym programu, a on w oknie głównym mógłby sobie nim kręcić do woli, skalować, kolorować itp. Wiem jak wygląda plik SVG bo poprzednim projektem który pisałem był program tworzący plik SVG z danych podanych przez użytkownika(ale to było pisane w czystym C++, a program był w konsoli).

Przykładowy plik SVG którego bym używał w programie:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="200" height="200" x="0" y="0"><rect x="66" y="37" width="50" height="125" fill="red" stroke="green" stroke-width="3"/>
<polyline fill="red" stroke="green" stroke-width="3"  points="116,162 166,187 166,12 116,37"/>
<line x1="0" y1="75" x2="66" y2="75" stroke="green" stroke-width="3"/>
<line x1="0" y1="125" x2="66" y2="125" stroke="green" stroke-width="3"/>
</svg> 

Coś mi się wydaje, że nie zdążę tego zrobić, bo mam to oddać we wtorek, a zielony jestem jak widać z tego. Nie dałem rady się wziąć za to wcześniej. Czytam sobie jakieś tutoriale na na necie, ale nie wiele mi dały bo nie znalazłem nic o operowaniu taką grafiką. Bardzo was proszę o pomoc. Dzięki

0

Aha, zapomniałem dopisać, że jeszcze miło by było gdyby też tworzył nowy kod .svg(już po edycji przez użytkownika).

0

Udało mi się zrobić tylko jakiś tam layout. Możecie mi podpowiedzieć jak zaimportować plik w XML do programu w wxWidgets, a potem edytować jego dane? Czy biblioteka wxXmlDocument się do tego nadaje, a jeśli tak to jak jej używać? :P

0

wxXmlDocument nie używałem, ale jakaś dokumentacja w sieci chyba jest, hm? Podejrzewam, że udostępni Ci w jakiś sposób DOM, a jak z niego skorzystać, to chyba tłumaczyć nie trzeba. Mając dane z svg będziesz mógł je przetworzyć i narysować.

0

No właśnie przydałoby się wytłumaczyć :P Co to jest DOM(znam tylko jedną definicję tego słowa;)?

0

W dzisiejszych czasach, żeby się czegoś dowiedzieć wystarczy korzystać z dwóch rzeczy: podstaw języka angielskiego i Google. ;)
Nie żeby wszystko dało się tak znaleźć, ale naprawdę sporo rzeczywiście się da.

Wklepujesz "DOM" w Google, dostajesz parę linków o sprzedaży domów i takie tam, a pod koniec pierwszej strony z wynikami będzie coś co wygląda bardziej obiecująco... http://en.wikipedia.org/wiki/Document_Object_Model

1 użytkowników online, w tym zalogowanych: 0, gości: 1