我正在用Python编写一个小应用程序,我希望用户能够在画布上放置,移动,旋转等不同的对象.没有大量编码,有没有办法实现这一目标?我在空闲时间这样做,而且我在PyQt中的经验有限.
这基本上是任何矢量图形编辑器所做的(即Inkscape,Corel Draw或Dr. Geo):它们为用户提供移动,拉伸和旋转对象的句柄.我想知道是否有任何小部件或其他已经提供句柄和基本操作的东西,所以我只需要实现程序对这些操作的反应.
由于我打算在免费许可下发布这个(如果我到达发布点),任何开源许可都会很棒.
谢谢!
由于其可扩展性,建议在WPF应用程序中使用矢量图像.在哪里可以找到矢量格式的免费图标?
我想在OpenGL游戏中使用矢量图形.我想使用矢量图形因为它们可以廉价地缩放而不会降低质量.
当然,绘图应该是硬件加速的,所以我不想在软件中绘制纹理.
现在我想知道这样做的库是否已经存在.是否有一个库,可以加载一些矢量图形格式并使用OpenGL显示它?
我有一些XAML格式的矢量图形文件,我想将它们用作Silverlight应用程序中的图标/按钮.我更喜欢的方法是使用Image控件并将其source属性设置为.xaml文件,就像我可以使用常规位图图像一样.
但它并不那么容易,我试图将它们作为ControlTemplates包含在资源字典中,我甚至尝试创建一个自动加载Xaml的自定义控件,但我对结果并不满意,因为我需要将它们包装起来ViewBox控件允许动态大小等.
所以我的问题是,如果有人有任何最佳实践建议如何最好地使用我的xaml图标?我可以在需要时复制粘贴xaml,但我真的不喜欢这种方法.
提前致谢.
光栅化矢量图像的一般算法是什么?我发现了许多光栅化基元的算法,如直线,圆,贝塞尔曲线等.但一般情况下,我该怎么办?简单地说,在矢量图片中找到矢量图,得到它的像素并将它们放入光栅图像中?或者是其他东西?
另一个问题是,如何使用并发性来改善处理时间?例如,我可以分离矢量图并同时获取它们的像素.但也许有其他方法可以做到这一点?
有人可以建议一个很好的矢量图形库吗?
有几个库支持绘图形状,我需要的是一个可以保存为矢量格式的库.
编辑:
我必须承认在发布之前我没有做足够的谷歌搜索.
cl-vectors似乎得到维护,推进和记录.
vecto似乎得到了维护,足够先进,并且有足够的文档记录
我仍然习惯于cl库不是他们看起来的样子,所以如果有人有个人经历,请分享
我正在建立一个新的网站,我希望该网站的徽标在所有设备上看起来都非常清晰(从台式电脑到iPhone和iPad上的视网膜显示器).
我所拥有的徽标不包含任何渐变或像素,因此我可以轻松地将其保存为矢量格式.但是,没有人能真正说出最佳格式.
是SVG还是PNG?
我将如何创建SVG文件?
即使在谷歌上也没有太多信息.
感谢您与我们分享您的经验.
我有一条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属性只使笔画蓝色而不是填充,我做错了什么?
我正在开发一个iOS应用程序,需要实时绘制Bézier曲线以响应用户的输入.起初,我决定尝试使用CoreGraphics,它具有出色的矢量绘图API.然而,我很快就发现性能很痛苦,极其缓慢,在我的视网膜iPad上只有一条曲线,帧速率开始严重下降.(不可否认,这是一个代码效率低下的快速测试.例如,曲线每帧都重新绘制.但是今天的计算机确实足够快,每隔1/60秒处理一条简单的曲线,对吧?!)
在这个实验之后,我切换到OpenGL和MonkVG库,我感到非常高兴.我现在可以在没有任何帧速率下降的情况下同时渲染HUNDREDS曲线,对保真度的影响很小(对于我的用例).
更新:
我编写了一个快速测试应用程序来更准确地衡量性能.下面是我的自定义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) 我需要优化带有由贝塞尔线构造的填充形状的矢量图像。输入图像以及形状分离后的外观:

我想通过删除不必要的线条并依靠形状堆叠来保留外观来优化图像,但顶点要少得多。结果形状应如下所示:
这个问题可能可以分解为单独的步骤:
检测堆叠线。这或多或少是简单的:计算沿线的点,沿它们找到顶点。如果顶点堆叠起来,它就变得微不足道了。
寻找穿过其他形状的填充区域的贝塞尔路径。可能已经存在这样的算法,但我不知道。(我在这里真的需要帮助。)而且还不清楚要采用什么形状。也许我应该解决所有的可能性并进行比较。一旦我了解了它,它可能会变得更清楚。(欢迎提供提示/建议。)
找到最佳的堆叠顺序以使顶点数量最少。对于像我这样不太热衷于算法的人来说,这听起来很痛苦,但这似乎是通过不同“路径”的顶点数量的某种最小化,所以可以做到。(如我错了请纠正我。)
如果一个形状中有一个洞,这可能意味着里面的所有东西都会堆叠在它的上面,所以这是一个单独的简单情况,不需要额外的计算。
总的来说,第二点似乎是最有(唯一?)问题的,所以我需要在正确的方向上推动。
就示例图像而言,如何找到绿色形状的潜在遮挡部分穿过蓝色形状(以及可选的黄色形状)的贝塞尔路径,反之亦然,让蓝色形状穿过绿色形状?我不需要路径是最短的,我需要它的顶点最少。
本质上,我需要找到这些具有最少顶点数的路径。请随意忽略其余内容,将其视为不相关的上下文。
algorithm vector-graphics mathematical-optimization path-finding
vector-graphics ×10
silverlight ×2
algorithm ×1
common-lisp ×1
css3 ×1
graphics ×1
icons ×1
image ×1
ios ×1
lisp ×1
opengl ×1
opengl-es ×1
openvg ×1
path-finding ×1
python ×1
raphael ×1
rasterizing ×1
svg ×1
widget ×1
wpf ×1
xaml ×1