2D рендеринг и увеличивание масштаб с SVG

Попробуйте это:

#!/bin/bash
find $1 -type f -exec stat --format '%Y :%y %n' "{}" \; | sort -nr | cut -d: -f2- | head

Запустите его с путем к каталогу, где он должен начать рекурсивное сканирование (он поддерживает имена файлов с пробелами).

Если файлов много, может пройти некоторое время, прежде чем они что-либо вернут. Производительность можно улучшить, если вместо этого использовать xargs:

#!/bin/bash
find $1 -type f -print0 | xargs -0 stat --format '%Y :%y %n' | sort -nr | cut -d: -f2- | head

, что немного быстрее.

7
задан julianfperez 3 January 2012 в 15:38
поделиться

3 ответа

Многие другие векторные форматы (например, PostScript и PDF) позволяют использовать ширину обводки 0 для обводки «тонкой линии». Не так с SVG. Однако я думаю , что вы можете добиться желаемого, если используете процентную ширину штриха. См. спецификации w3c SVG для получения подробной информации , но, в основном, вы должны иметь возможность сделать что-то вроде этого:

stroke-width:"1%"

Это должно обвести вашу кривую с шириной линии, которая составляет постоянный 1% от ограничивающего прямоугольника. , независимо от уровня масштабирования.

Что касается точек, SVG их не поддерживает. Когда я делал это в прошлом (используя PostScript), я всегда использовал дугу с небольшим редиусом , чтобы нарисовать небольшой круг (который вы можете заполнить, чтобы образовалась точка, если хотите).


@Zoli: После вашего комментария, Я собирался предложить вам изучить PostScript, чтобы вы могли использовать ширину обводки линии волос, когда я наткнулся на векторный эффект без масштабирования обводки в спецификации SVG :

vector-effect="non-scaling-stroke"

Просто добавьте это в свой кривой и должна быть инвариантной к масштабированию в соответствии со спецификацией. В их примере используется линия , но она должна работать и на ваших кривых.

8
ответ дан 7 December 2019 в 03:19
поделиться

В настоящее время в SVG нет элемента или чего-либо подобного, но добавление этого уже обсуждалось в рабочей группе SVG, поэтому его можно включить в будущее. Не стесняйтесь озвучивать свои потребности и требования к элементу в общедоступном списке рассылки svg: www-svg@w3.org.

Обходной путь - использовать, например, элементы и позволить им иметь нулевую длину, при желании можно использовать круглые заглавные буквы, чтобы отображалась точка. Все зависит от того, для чего вам это нужно. Возможно, лучше подойдет круг с r = 0.

Свойство 'vector-effect' со значением 'non-scaling-stroke' - это то, что вы должны использовать, чтобы сказать, что обводка не должна масштабироваться. Не так сложно реализовать решение javascript, которое гарантирует, что штрихи правильно масштабируются, если «векторный эффект» изначально не поддерживается. Opera 9.5+ изначально поддерживает его.

1
ответ дан 7 December 2019 в 03:19
поделиться

Спасибо, Наафф помощь. Я думаю, что останусь с firefox, и я буду указывать для каждого выполнения алгоритма ширину строки в сгенерированном файле svg. Для меня этого будет достаточно.

0
ответ дан 7 December 2019 в 03:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: