标签: vector-graphics

python的交互式矢量图形画布?

我正在用Python编写一个小应用程序,我希望用户能够在画布上放置,移动,旋转等不同的对象.没有大量编码,有没有办法实现这一目标?我在空闲时间这样做,而且我在PyQt中的经验有限.

这基本上是任何矢量图形编辑器所做的(即Inkscape,Corel Draw或Dr. Geo):它们为用户提供移动,拉伸和旋转对象的句柄.我想知道是否有任何小部件或其他已经提供句柄和基本操作的东西,所以我只需要实现程序对这些操作的反应.

由于我打算在免费许可下发布这个(如果我到达发布点),任何开源许可都会很棒.

谢谢!

python widget vector-graphics

8
推荐指数
1
解决办法
3616
查看次数

WPF应用程序的图标

由于其可扩展性,建议在WPF应用程序中使用矢量图像.在哪里可以找到矢量格式的免费图标?

silverlight wpf icons vector-graphics

7
推荐指数
1
解决办法
2993
查看次数

用于OpenGL的2D矢量图形渲染器

我想在OpenGL游戏中使用矢量图形.我想使用矢量图形因为它们可以廉价地缩放而不会降低质量.

当然,绘图应该是硬件加速的,所以我不想在软件中绘制纹理.

现在我想知道这样做的库是否已经存在.是否有一个库,可以加载一些矢量图形格式并使用OpenGL显示它?

opengl vector-graphics

7
推荐指数
1
解决办法
1万
查看次数

XAML图标 - 如何使用?

我有一些XAML格式的矢量图形文件,我想将它们用作Silverlight应用程序中的图标/按钮.我更喜欢的方法是使用Image控件并将其source属性设置为.xaml文件,就像我可以使用常规位图图像一样.

但它并不那么容易,我试图将它们作为ControlTemplates包含在资源字典中,我甚至尝试创建一个自动加载Xaml的自定义控件,但我对结果并不满意,因为我需要将它们包装起来ViewBox控件允许动态大小等.

所以我的问题是,如果有人有任何最佳实践建议如何最好地使用我的xaml图标?我可以在需要时复制粘贴xaml,但我真的不喜欢这种方法.

提前致谢.

silverlight graphics xaml vector-graphics

7
推荐指数
1
解决办法
8232
查看次数

光栅矢量图像的通用算法

光栅化矢量图像的一般算法是什么?我发现了许多光栅化基元的算法,如直线,圆,贝塞尔曲线等.但一般情况下,我该怎么办?简单地说,在矢量图片中找到矢量图,得到它的像素并将它们放入光栅图像中?或者是其他东西?

另一个问题是,如何使用并发性来改善处理时间?例如,我可以分离矢量图并同时获取它们的像素.但也许有其他方法可以做到这一点?

vector-graphics rasterizing raster-graphics

7
推荐指数
1
解决办法
4722
查看次数

Common Lisp的矢量图形库

有人可以建议一个很好的矢量图形库吗?
有几个库支持绘图形状,我需要的是一个可以保存为矢量格式的库.

编辑: 我必须承认在发布之前我没有做足够的谷歌搜索.

cl-vectors似乎得到维护,推进和记录.
vecto似乎得到了维护,足够先进,并且有足够的文档记录

我仍然习惯于cl库不是他们看起来的样子,所以如果有人有个人经历,请分享

lisp common-lisp vector-graphics

7
推荐指数
2
解决办法
1377
查看次数

网络上可缩放矢量图形的最佳文件格式?

我正在建立一个新的网站,我希望该网站的徽标在所有设备上看起来都非常清晰(从台式电脑到iPhone和iPad上的视网膜显示器).

我所拥有的徽标不包含任何渐变或像素,因此我可以轻松地将其保存为矢量格式.但是,没有人能真正说出最佳格式.

是SVG还是PNG?

我将如何创建SVG文件?

即使在谷歌上也没有太多信息.

感谢您与我们分享您的经验.

image vector-graphics css3

7
推荐指数
3
解决办法
6万
查看次数

(RaphaelJS) - 如何填充路径的内部?

我有一条RaphaelJS库的路径,我似乎无法填补它的颜色.

var mypage = ScaleRaphael('mainContainer', 1000, 1000);
 mypage.setStart();
mypath.path('M794.33,21.5l152.3-0.76L946,21.5v-0.22l1.39,0.01l-1.17,206.61l-0.04,0.3l-0.15,0.27l-0.04,0.07l-0.18,0.35l-0.34,0.2 L786.4,321.59l-159.22,92.27l-2.12,1.18l-0.07-2.36v-1v-0.28l0.18-0.26l42.1-97.5l42.26-97.43l21.13-48.71l21.21-48.68 L794.33,21.5z M794.33,21.5l-41.46,97.76l-20.76,48.87l-20.84,48.83l-41.68,97.67l-41.78,97.59l0.18-0.54v1l-2.11-1.18 l159.08-92.46l159.23-92.21l-0.52,0.54l0.03-0.07l-0.14,0.57l2.04-206.6l1.39,0.01v0.22l0.13,0.77l-0.69,0L794.33,21.5z')
    .attr({"type":"path","stroke":"none","fill":"blue"});
Run Code Online (Sandbox Code Playgroud)

路径是正确创建的,但fill属性只使笔画蓝色而不是填充,我做错了什么?

svg vector-graphics raphael

7
推荐指数
1
解决办法
5692
查看次数

痛苦地减慢软件向量,特别是CoreGraphics与OpenGL

我正在开发一个iOS应用程序,需要实时绘制Bézier曲线以响应用户的输入.起初,我决定尝试使用CoreGraphics,它具有出色的矢量绘图API.然而,我很快就发现性能很痛苦,极其缓慢,在我的视网膜iPad上只有一条曲线,帧速率开始严重下降.(不可否认,这是一个代码效率低下的快速测试.例如,曲线每帧都重新绘制.但是今天的计算机确实足够快,每隔1/60秒处理一条简单的曲线,对吧?!)

在这个实验之后,我切换到OpenGL和MonkVG库,我感到非常高兴.我现在可以在没有任何帧速率下降的情况下同时渲染HUNDREDS曲线,对保真度的影响很小(对于我的用例).

  1. 我是否有可能以某种方式滥用CoreGraphics(至少比OpenGL解决方案慢几个数量级),还是表现真的那么可怕?我的预感是问题在于CoreGraphics,基于StackOverflow /论坛问题的数量以及有关CG性能的答案.(我已经看到有几个人声称CG并不意味着进入一个运行循环,并且它只应该用于不频繁的渲染.)从技术上讲,为什么会这样呢?
  2. 如果CoreGraphics真的那么慢,Safari究竟如何顺利地工作?我的印象是Safari不是硬件加速的,但它必须同时显示数百个(如果不是数千个)矢量字符而不丢弃任何帧.
  3. 更一般地说,如果没有硬件加速,使用重载矢的应用程序(浏览器,Illustrator等)如何保持如此快速?(据我所知,许多浏览器和图形套件现在都带有硬件加速选项,但默认情况下它通常不会打开.)

更新:

我编写了一个快速测试应用程序来更准确地衡量性能.下面是我的自定义CALayer子类的代码.

将NUM_PATHS设置为5并将NUM_POINTS设置为15(每个路径5个曲线段),代码在非视网膜模式下以20fps运行,在iPad 3上以视网膜模式运行6fps.分析器将CGContextDrawPath列为拥有96%的CPU时间.是的 - 显然,我可以通过限制我的重绘矩形进行优化,但如果我真的需要60fps的全屏矢量动画呢?

OpenGL在早餐时吃这个测试.矢量绘图怎么可能这么慢?

#import "CGTLayer.h"

@implementation CGTLayer

- (id) init
{
    self = [super init];
    if (self)
    {
        self.backgroundColor = [[UIColor grayColor] CGColor];
        displayLink = [[CADisplayLink displayLinkWithTarget:self selector:@selector(updatePoints:)] retain];
        [displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
        initialized = false;

        previousTime = 0;
        frameTimer = 0;
    }
    return self;
}

- (void) updatePoints:(CADisplayLink*)displayLink
{
    for (int i = 0; i < NUM_PATHS; i++)
    {
        for (int j = 0; j < NUM_POINTS; …
Run Code Online (Sandbox Code Playgroud)

opengl-es core-graphics vector-graphics openvg ios

7
推荐指数
1
解决办法
4057
查看次数

通过删除不必要的点和堆叠形状来优化矢量图像

我需要优化带有由贝塞尔线构造的填充形状的矢量图像。输入图像以及形状分离后的外观:

我想通过删除不必要的线条并依靠形状堆叠来保留外观来优化图像,但顶点要少得多。结果形状应如下所示:

这个问题可能可以分解为单独的步骤:

  1. 检测堆叠线。这或多或少是简单的:计算沿线的点,沿它们找到顶点。如果顶点堆叠起来,它就变得微不足道了。

  2. 寻找穿过其他形状的填充区域的贝塞尔路径。可能已经存在这样的算法,但我不知道。(我在这里真的需要帮助。)而且还不清楚要采用什么形状。也许我应该解决所有的可能性并进行比较。一旦我了解了它,它可能会变得更清楚。(欢迎提供提示/建议。

  3. 找到最佳的堆叠顺序以使顶点数量最少。对于像我这样不太热衷于算法的人来说,这听起来很痛苦,但这似乎是通过不同“路径”的顶点数量的某种最小化,所以可以做到。(如我错了请纠正我。

  4. 如果一个形状中有一个洞,这可能意味着里面的所有东西都会堆叠在它的上面,所以这是一个单独的简单情况,不需要额外的计算。

总的来说,第二点似乎是最有(唯一?)问题的,所以我需要在正确的方向上推动。

就示例图像而言,如何找到绿色形状的潜在遮挡部分穿过蓝色形状(以及可选的黄色形状)的贝塞尔路径,反之亦然,让蓝色形状穿过绿色形状?我不需要路径是最短的,我需要它的顶点最少。

本质上,我需要找到这些具有最少顶点数的路径。请随意忽略其余内容,将其视为不相关的上下文。

algorithm vector-graphics mathematical-optimization path-finding

7
推荐指数
1
解决办法
303
查看次数