J'ai vu plusieurs applications iPhone / iPad qui montrent Kanji animée. Pour ceux d'entre vous qui ne sont pas familiarisés avec Kanji, l'ordre des traites est une partie très importante de Kanji qui étudie, donc si vous faites une application indiquant que l'ordre d'affaire animé est un élément essentiel. P>
Toutes les applications que j'ai vues que cela, créditer le Kanjivg comme source pour le Données de commande de trait. Après quelques recherches, j'ai constaté que le projet Kanjivg vous fournit les données du format SVG codé dans XML. p>
n'ayant jamais programmé de graphiques avant (et d'être relativement nouveau à iOS) Je suis à perte de la recherche d'informations. p>
i pense em> J'ai besoin de: p>
... mais je ne suis pas sûr. Pour ce que je pouvais voir comment cela se fait dans les applications iPhone / iPad que j'ai achetées, les animations semblent toutes étonnamment similaires, donc il doit y avoir une bibliothèque commune que ces gars utilisent que je ne trouve pas de trouver (probablement parce que je ne le fais pas savoir exactement ce que je cherche!) p>
Tous les pointeurs que tout le monde peut me donner sera grandement apprécié. P>
acclamations! p>
5 Réponses :
Cela a fini par être tellement plus facile que je ne le pensais à l'origine. Le XML fourni par le projet Kanjivg contient non seulement toutes les "pièces" kanji, mais les données SVG aswell!
Vous obtenez donc ceci: p> et si vous créez votre Fichier SVG Seulement uniquement sur les attributs CODE> PATH CODE> de la course code> CODE> NODES, alors vous obtenez un bon dessin SVG! Comme ceci: P> <svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" version="1.1" baseProfile="full">
<path d="M52.25,14c0.25,2.28-0.52,3.59-1.8,5.62c-5.76,9.14-17.9,27-39.2,39.88" style="fill:none;stroke:black;stroke-width:2" />
<path d="M54.5,19.25c6.73,7.3,24.09,24.81,32.95,31.91c2.73,2.18,5.61,3.8,9.05,4.59" style="fill:none;stroke:black;stroke-width:2" />
<path d="M37.36,50.16c1.64,0.34,4.04,0.36,4.98,0.25c6.79-0.79,14.29-1.91,19.66-2.4c1.56-0.14,3.25-0.39,4.66,0" style="fill:none;stroke:black;stroke-width:2" />
<path d="M23,65.98c2.12,0.52,4.25,0.64,7.01,0.3c13.77-1.71,30.99-3.66,46.35-3.74c3.04-0.02,4.87,0.14,6.4,0.29" style="fill:none;stroke:black;stroke-width:2" />
<path d="M47.16,66.38c0.62,1.65-0.03,2.93-0.92,4.28c-5.17,7.8-8.02,11.38-14.99,18.84c-2.11,2.25-1.5,4.18,2,3.75c7.35-0.91,28.19-5.83,40.16-7.95" style="fill:none;stroke:black;stroke-width:2" />
<path d="M66.62,77.39c4.52,3.23,11,12.73,13.06,18.82" style="fill:none;stroke:black;stroke-width:2" />
</svg>
Comment avez-vous fini par analyser le XML? C'est un énorme fichier
@MRD j'ai utilisé php. Si vous n'avez pas assez de RAM pour le lire tout entier, vous devez le faire avec une méthode qui lit le bit de fichier par un peu.
Je suis intéressé par cela aussi. Avez-vous eu plus loin? Je suis capable d'afficher le Kanji à partir d'un fichier SVG de cette façon en créant un UIWebView. Dans cet exemple, mon fichier est k1.svg et l'image a été dessinée après avoir heurté un bouton (l'expéditeur). Je travaille sur l'avoir animé maintenant
-(void) doSVG:(id)sender { NSString *filePath = [[NSBundle mainBundle] pathForResource:@"k1" ofType:@"svg"]; NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:filePath]; NSURLRequest *req = [NSURLRequest requestWithURL:fileURL]; //[kanjiView setScalesPageToFit:YES]; [yourWebView loadRequest:req]; }
Pour obtenir la totalité des informations SVG, j'ai écrit un script PHP qui l'a tiré en faisant une analyse de XML simple. Je viens de tirer les attributs "chemin" pour chaque nœud
Pas besoin de la base de données. Vous pouvez simplement écrire un script pour compiler chaque Kanji dans son propre fichier SVG et rendre cela. En fait, c'est ce que ce projet fait, bien que ce soit dans Ruby: Github.com/kimtaro/kanjivg2svg . Bonne chance!
J'ai écrit un rendu JavaScript pour les données de Kanjivg quelques années en arrière qui anime des stokes. Cela pourrait servir d'exemple de travail pour vous ou même une solution en fonction de ce que vous voulez faire. P>
L'approche que j'ai prise était de briser les données de l'AVC de Kanjivg dans un ensemble de fichiers de données JavaScript, écrivez mon propre code pour dessiner des courbes cubes et quadratiques, puis écrivez une fonction de file d'attente d'événement qui prend Kanji, les regarde et en faisait en profondeur le rendu. de chaque accident vasculaire cérébral dans un tableau. P>
La source n'est pas obscopée de quelque manière que ce soit et contient le commentaire étrange. Bonne chance! P>
Aaron, merci de partage. Pensez-vous que vous pouvez fournir un lien vers un fichier zip avec tous les fichiers JS nécessaires?
Au lieu d'analyser vous-même les données SVG vous-même, vous auriez pu utiliser l'élément
Il n'est pas nécessaire de traduire les données Kanjivg en données SVG, car elles sont déjà des données SVG. De leur wiki : p>
Tout fichier Kanjivg est 100% conforme à SVG et peut être ouvert par son visionneuse / éditeur SVG préféré à être vu tel quel. p> blockQuote>
La raison pour laquelle les données ont l'air si différente est qu'ils utilisent Groupes SVG < / a> pour stocker des informations supplémentaires. Mais les données de Kanjivg lui-même devraient toujours faire de l'amende en utilisant une bibliothèque SVG conforme aux normes. P>
Vous pouvez également envisager "Projet Animcjk" ( https://github.com/ParsIMONHI/ANIMCJK) En tant que source pour les données Kanji SVG. Le principe est légèrement différent du "Projet Kanjivg" ( http://kanjivg.tagaini.net/ ) et La police sous-jacente est différente (style Kaisho), mais l'extraction des données de chemin est simple. Utilisation d'une regex tel que #