我目前正在研究使用OpenGL和OpenGL ES从SVG文件渲染矢量图形的可能性.我打算以Windows和Android为目标.我理想的解决方案是拥有一个最小的C库,从给定的SVG文件生成多边形三角剖分.然后,这将生成标准的OpenGL或OpenGL ES调用,并在重绘时使用显示列表或vbo进行优化.我只需绘制一个显示列表,在翻译和旋转后绘制矢量图像,允许我将其与其他OpenGL调用混合.
到目前为止,我看到建议首先使用QT或开罗. - 这不是一个选项,因为我希望在没有膨胀库的情况下管理我自己的OpenGL上下文(在我想要实现的内容中).这也不适合Android.
第二个选项是使用渲染到纹理的库.虽然这可能适用于静态矢量图形,但对于经常进行缩放和旋转的游戏来说,它不是一种有效或可行的选择.
第三,有可能使用OpenVG.OpenVG规范(ShivaVG等)有一些开源实现,但我还没有找到一个能够在运行时从给定的SVG文件生成适当的OpenVG调用的库,我无法看到如何优化它我们可能希望使用显示列表或vbo.
这三种方法都受到限制.我认为最有希望的选择是在没有其他解决方案的情况下使用OpenVG实现.所以我的问题是,是否有任何图书馆可以做我想要的,或接近我想要的?如果没有,有什么理由不是吗?尝试从头开始这样做会更好吗?
为了获得中心,我已经尝试为每个顶点添加总数,除以顶点数.
我也试图找到最顶端,最底部 - >获得中点...找到最左边,最右边,找到中点.
这两个都没有返回完美的中心,因为我依靠中心来缩放多边形.
我想缩放我的多边形,所以我可以在它们周围放置一个边框.
找到多边形的质心的最佳方法是多边形可能是凹的,凸的并且有许多不同长度的边?
请告诉我你知道HTML5 Canvas中用于绘制和处理矢量图形的库吗?
谢谢!!!
我想在我的Android应用程序中使用更多矢量绘图.提供图像并不像我希望的那样具有空间效率或可扩展性.
Android提供了一系列Drawable文件格式,例如ShapeDrawable,可以组合在一起LayeredDrawable.如果有一个设计师用于可视化结果,进行绘图并处理所有生成的文件,那么在这条路径上走得很远就会很好.
C#WPF有Expression Blend,Adobe有Flash CS4,而iPhone有Opacity.所以我的问题是,是否有适用于Android的设计师或绘图工具?
注意:其他问题已经讨论过在Android中使用SVG.Android没有对SVG的本机支持,因此唯一的方法是使用外部库.我想避免这种情况,并且要求使用开发人员方面的工具.SVG到Drawable转换器会很好,但我不知道.
随着新的Android支持更新,矢量drawables获得向后兼容性.我有一个带有各种路径的矢量图像.我希望通过单击按钮或基于输入值以编程方式更改路径的颜色.是否可以访问矢量路径的name参数?然后改变颜色.
我正在开发一个显示其他人的图像数据库的应用程序.他们拥有的图像都是矢量图形,可以转换为任何格式,但是将它们保存为矢量格式是好的,因为用户可能想要放大.
问题是,是否有一种在Android中显示矢量图形的内置方法?格式无关紧要 - 我们可以转换.我们正在考虑的当前格式是PDF,但鉴于没有本机PDF支持,我必须做一些非常复杂的事情才能使其正常工作(例如,通过NDK 将poppler集成到我的应用程序中).另一种方法是将矢量图形转换为更简单的格式(JPG,GIF),但我宁愿避免这种情况.
一些高中数学概念已被遗忘,所以我在这里问.
如果我有两点p1(x1,y1),p2(x2,y2)的方向P1-->p2,这是p1指向p2.由向量表示这个方向,它是Vector(x2-x1,y2-y1)或Vector(x1-x2, y1-y2)?
顺便说一下,规范化矢量的目的是什么?
我BitmapDescriptor在创建MarkerOptions使用VectorDrawableAPI 5.0+的图标时遇到谷歌地图问题
用于创建的方法:
@NonNull
private BitmapDescriptor getBitmapDescriptor(int id) {
return BitmapDescriptorFactory.fromResource(id);
}
Run Code Online (Sandbox Code Playgroud)
当id参数包含png drawable时,一切都很好,但是如果我VectorDrawable在xml中定义它,那么当googleMap.addMarker(marker)(BitmapDescriptor不是null)时,App总会崩溃.
11-05 10:15:05.213 14536-14536/xxx.xxxxx.app E/AndroidRuntime: FATAL EXCEPTION: main
Process: xxx.xxxxx.app, PID: 14536
java.lang.NullPointerException
at com.google.a.a.ae.a(Unknown Source)
at com.google.maps.api.android.lib6.d.dn.<init>(Unknown Source)
at com.google.maps.api.android.lib6.d.dm.a(Unknown Source)
at com.google.maps.api.android.lib6.d.ag.<init>(Unknown Source)
at com.google.maps.api.android.lib6.d.eu.a(Unknown Source)
at com.google.android.gms.maps.internal.j.onTransact(SourceFile:167)
at android.os.Binder.transact(Binder.java:380)
at com.google.android.gms.maps.internal.IGoogleMapDelegate$zza$zza.addMarker(Unknown Source)
at com.google.android.gms.maps.GoogleMap.addMarker(Unknown Source)
at xxx.xxxxx.app.ui.details.DetailActivity.lambda$initGoogleMaps$23(DetailActivity.java:387)
at xxx.xxxxx.app.ui.details.DetailActivity.access$lambda$10(DetailActivity.java)
at xxx.xxxxx.app.ui.details.DetailActivity$$Lambda$13.onMapReady(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment$zza$1.zza(Unknown Source)
at com.google.android.gms.maps.internal.zzl$zza.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:380) …Run Code Online (Sandbox Code Playgroud) 我有一个我需要编辑的矢量图像,我有inkscape.我想要做的是用另一组调色板替换一组调色板.例如,我的图像有一个调色板,有几种颜色的橙色,绿色和蓝色.如果我想用另一种颜色替换调色板的橙色部分,我该怎么办?
我最近一直在玩帆布,并使用与这些曲线相关的方法绘制了几种形状(泪滴,花瓣,云,岩石).话虽如此,我似乎无法弄清楚这些不同曲线的用例之间的区别.
我知道三次贝塞尔曲线有2个控制点,一个起始点和一个端点,其中二次贝塞尔曲线有一个控制点,一个起点和一个端点.但是,在绘制形状时,我似乎无法轻易决定使用哪一个或何时结合使用它们.
如何知道在不同的绘制形状点使用哪种曲线?