По необходимости Инструмент Слияния
Даже при том, что По необходимости, очевидно, не, освобождает инструмент слияния. Это 100x лучше, чем TortoiseSvn по умолчанию один. Для интеграции с TortoiseSvn устанавливает инструмент слияния на:
C:\Path-To\P4Merge.exe %base %theirs %mine %merged
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(
Я использовал эту функцию один раз.
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]);
}
}
не уверен, нужен ли вам конкретно Безье, но этот инструмент для сплайнов catmull-rom довольно хорош: http://www.motiondraw.com/md/as_samples/t/CatmullRomSpline/tween.html