问题标签 [quartz-graphics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2051 浏览

iphone - 找不到 CATransform3DMakeRotation 符号

我已经包括:

但是当我尝试构建时,我得到了标题中提到的错误。我还需要做些什么来告诉 XCode 包含该框架吗?

我使用它的代码是:

0 投票
5 回答
13643 浏览

iphone - 为 iPhone SDK 优化绘图(用手指触摸)应用程序

我正在编写一个使用手指绘制简单图表的应用程序。我让它大部分时间都在工作,但现在我正在尝试优化它的性能。当用户快速滑动手指时,我无法捕获足够的触摸事件来绘制平滑路径。

这是我目前的方法:

1)我子类化了一个 UIView 并向 CGLayer 添加了一个 poroperty(被懒惰地创建并且与我的 UIView 大小相同)。2) 我的 UIView 子类通过将当前和最后一个触摸点存储在实例变量中来响应触摸事件。3) 调用我的视图的 setNeedsDisplay 并在绘制矩形中执行以下操作: - 从上一个触摸位置到当前触摸位置到 CGLayer 绘制一条线 - 一次将整个 CGLayer 绘制到我的视图上下文中

主要问题是当用户快速滑动时,我得到的触摸事件相对较少,因此我在触摸之间绘制的线条很长,并且使路径看起来参差不齐。

我的问题:

1)drawRect(在我的 UIView 子类上)和我的 UIView 子类上的触摸事件处理程序是否在同一个线程中被调用?即我是否必须执行线程(一个在触摸事件中,第二个在我的绘制矩形中)?

如果不是 - 在调用 drawRect 时触摸事件是否排队?以及如何提高性能 - 只需提高 drawRect 的性能?

如果是 - 我怎样才能让更多的触摸事件发生,以便我可以绘制更平滑的路径?

谢谢。

0 投票
0 回答
277 浏览

iphone - How to color an image having shapes?

I know its possible with boundary fill, but have tried everything in Objective C and I'm still not successful. Any help with code will be highly appreciated.

This code returns the color of the touched pixel:

I am not able to color the pixel, sometimes this code returns different color on the same pixel.

0 投票
3 回答
5346 浏览

iphone - 如何检查用户是否在 CGPath 附近点击?

设想:

我有一套CGPaths。它们大多只是线条(即不是封闭的形状)。它们以UIView的 draw 方法绘制在屏幕上。

如何检查用户是否在其中一条路径附近点击?

这是我的工作:

所以我正在做的是创建一个图像上下文,因为它具有我需要的功能。然后我将路径添加到上下文中,并将线宽设置为 15。此时抚摸路径将创建点击区域,我可以在其中检查以查找点击。因此,我通过告诉上下文将路径转换为描边路径,然后将该路径复制回另一个 CGPath 来获得描边路径。稍后,我可以检查:

这一切都运作良好,但由于CGContextCopyPath明显的原因,没有记录的 . 似乎是一个坏主意。CGContext为了这个目的而制作一个公正的东西也有一定的笨拙。

那么,有人有什么想法吗?如何检查用户是否在 a 上的任何区域附近(在本例中为 15 像素内)轻敲CGPath

0 投票
3 回答
1583 浏览

iphone - 任何技术来绘制动画路径?

有没有办法用石英模拟手写?

我的意思是在 A、B 和 C 点之间有一条路径。我希望路径从 A 点出来,然后动画到 B 点,然后到 C 点。

想到的是两种选择:

  1. 丑陋 - 创建路径,然后将其遮盖并移动遮罩以显示路径。花费大量时间来创建不可靠且丑陋的黑客

  2. 移动点 A、B、C 并在它们之间画线。

  3. 某种方式可以沿离开小径的路径为圆圈设置动画?

有什么技巧、例子吗?

谢谢。

0 投票
1 回答
3583 浏览

iphone - iPhone SDK 使用 Quartz 缩放和刷新 PDF

查看 QuartzDemo 示例应用程序,我喜欢单独使用石英(即不使用 uiwebview)渲染 PDF 的速度。但是,当我放大 PDF 时,它似乎并没有像在 PDF 视图中那样变得更加清晰。

使用多点触控放大和缩小时,我可以改变什么以产生相同的效果吗?像操纵PDF转换矩阵什么的?

谢谢一堆。

——本

0 投票
1 回答
2695 浏览

iphone - 绘制大型 CGPath 的最有效方法是什么?

好吧,我有一个UIView显示CGPath相当宽的。它可以UIScrollView水平滚动。现在,我使用 a 来查看视图CATiledLayer,因为它的宽度超过 1024 像素。

所以我的问题是:这有效吗?

本质上,每次绘制图层中的图块时,我都会绘制整个路径。有谁知道这是否是一个坏主意,或者 CGContext 是否相对聪明地只绘制剪切矩形内的路径部分?

路径主要是这样设置的,我可以将它分成大小和形状与瓷砖相似的块,但它需要我做更多的工作,需要在路径之间有一些冗余(对于形状跨越瓷砖边界),并且还需要一些计算来找到要绘制的路径。

朝这个方向发展是否值得,还是 CGPath 已经相对较快地绘制?

0 投票
1 回答
339 浏览

iphone - Quartz 如何处理纹理压缩?

我在 iPhone 上进行开发,我们的大部分游戏都使用 OpenGL ES,但也有一些菜单使用 CGImage 和 Quartz 来显示。在 OpenGL ES 中,我知道无论采用何种图像压缩方式(JPG、PNG 等),作为纹理存储在内存中的数据都是 8 位纹理,除非我使用 PVRTC 在这种情况下我可以得到它2 或 4 位。由于 CGImage 较大,我们一直存在内存问题,所以我的问题是...... Quartz 和 CGI​​mage 使用什么样的优化和压缩?我在 Apple 的文档中找不到详细信息,当我真的想知道放入 256 色图像或 JPG 与 PNG 是否会有所不同,如果尺寸为 2 次方有帮助,等等速度并不重要,内存是这里的瓶颈。

谢谢。

0 投票
1 回答
230 浏览

iphone - CGLayer 出现错误的方式

我有一个 200 宽 x 100 高的 UIView 子类(TraceView),我正试图逐个像素地绘制它。在这种情况下,我试图绘制一条横穿 75% 的水平蓝线。相反,我得到两条垂直的蓝线(一条在边缘,一条在中间),向上延伸了 75%。我使用的 CGLayer 好像旋转了 90 度,缩小了 50%。我能做些什么来纠正这个问题?

在 .m 文件的顶部:

覆盖drawRect:

0 投票
2 回答
7699 浏览

iphone - 颠倒文本 - Quartz/iPhone - CGContextScaleCTM

我使用左下角而不是左上角在 iPhone 上使用以下内容进行绘制:

虽然这可以很好地更改我的原点以绘制图表,但标签出现倒置。

如何使用我的坐标系,同时获得正常的直文本来正确标记我正在绘制的图表?