Делая гладкий путь из неправильного количества x, y указывает для моделирования почерка

По необходимости Инструмент Слияния

Даже при том, что По необходимости, очевидно, не, освобождает инструмент слияния. Это 100x лучше, чем TortoiseSvn по умолчанию один. Для интеграции с TortoiseSvn устанавливает инструмент слияния на:

C:\Path-To\P4Merge.exe %base %theirs %mine %merged

7
задан Amarghosh 20 November 2009 в 16:42
поделиться

3 ответа

jhotdraw - это проект с открытым исходным кодом на Java для рисования. Он преобразует рисунки от руки в кубические кривые Безье. Источник есть - скачайте и переведите. Не пугайтесь размера проекта: вам понадобится всего пара классов, а именно:

org.jhotdraw.geom.Bezier
org.jhotdraw.geom.BezierPath
org.jhotdraw.geom.Geom

При переводе начните с изменения всех объявлений коллекций на массивы (используйте векторы, если вы ориентируетесь только на пользователей FP10). У меня есть несколько регулярных выражений, которые могут оказаться полезными при преобразовании - я могу опубликовать их, если хотите.


Вот список регулярных выражений, которые могут быть вам полезны. В каждой паре вставьте первую в область текста поиска, а вторую в область замены, установите флажок регулярного выражения и используйте кнопки «Найти» и «Заменить». Не используйте Заменить все - ни один из них не гарантирует надежной защиты . t иметь статический импорт

(?<!Math\.)\b(max|min|abs|sqrt|PI|cos|sin|atan2)\(

Math.$1(
7
ответ дан 7 December 2019 в 03:17
поделиться

Я использовал эту функцию один раз.


    public function multicurve(g: Graphics, args: Array, closed: Boolean): void {           
            var mid: Array = args.slice();  //make dublicate
            var i: uint;
            var point: Point;
            var nextPoint: Point;
            var numPoints: uint = mid.length;

            if (numPoints == 2) {
                g.moveTo(mid[0].x, mid[0].y);
                g.lineTo(mid[1].x, mid[1].y);
                return;
            }

            var Xpoint: Array = new Array();
            var Ypoint: Array = new Array();
            for (i = 1; i < numPoints - 2; i++) {
                point = mid[i];
                nextPoint = mid[i+1];
                Xpoint[i] = 0.5*(nextPoint.x + point.x);
                Ypoint[i] = 0.5*(nextPoint.y + point.y);
            }
            if (closed) {
                Xpoint[0] = 0.5*(mid[1].x + mid[0].x);
                Ypoint[0] = 0.5*(mid[1].y + mid[0].y);
                Xpoint[i] = 0.5*(mid[i+1].x + mid[i].x);
                Ypoint[i] = 0.5*(mid[i+1].y + mid[i].y);
                Xpoint[i+1] = 0.5*(mid[i+1].x + mid[0].x);
                Ypoint[i+1] = 0.5*(mid[i+1].y + mid[0].y);
                mid.push(new Point(mid[0].x, mid[0].y));
                Xpoint[i+2] = Xpoint[0];
                Ypoint[i+2] = Ypoint[0];
            } else {
                Xpoint[0] = mid[0].x;
                Ypoint[0] = mid[0].y;
                Xpoint[i] = mid[i+1].x;
                Ypoint[i] = mid[i+1].y;
                mid.pop();
                numPoints--;
            }
            g.moveTo(Xpoint[0], Ypoint[0]);
            for (i = 1; i < numPoints; i++) {
                point = mid[i];
                g.curveTo(point.x, point.y, Xpoint[i], Ypoint[i]);
            }
            if (closed) {
                g.curveTo(mid[0].x, mid[0].y, Xpoint[i], Ypoint[i]);
            }
        }


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

не уверен, нужен ли вам конкретно Безье, но этот инструмент для сплайнов catmull-rom довольно хорош: http://www.motiondraw.com/md/as_samples/t/CatmullRomSpline/tween.html

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

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