问题标签 [core-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 投票
3 回答
1966 浏览

iphone - 使用 CoreGraphics 查找二次贝塞尔曲线的最小值/最大值

我正在使用 CoreGraphics 绘制二次贝塞尔曲线,但想计算曲线的最小值/最大值。我不是数学背景,所以这变得有点麻烦。有没有人有任何关于如何解决这个问题的文章或想法?

0 投票
5 回答
1229 浏览

iphone - 需要帮助优化我在 iPhone 上的 2d 绘图

我正在编写一个游戏,它显示 56 个六边形棋子以棋盘的形状填充屏幕。我目前正在使用单例渲染类绘制每一块,当调用它来绘制一块时,会根据传入的坐标从 6 个点创建一条路径。这条路径填充了纯色,然后是一个 59x59 png 和一个 alpha 到白色渐变覆盖在图纸上,使作品看起来有光泽。请注意,我目前正在 Core Graphics 中执行此操作。

我的第一个想法是每次绘制时创建一条路径成本很高,而且似乎我可以以某种方式执行一次然后重用它,但我不确定最好的方法。当我查看 Shark 的瓶颈时,看起来 png 的绘制是该过程中最费力的部分。我试过只渲染 png 叠加层或只渲染没有叠加层的路径,两者都给了我一些帧增益,尽管删除 png 叠加层会产生最多的帧。

我目前的想法是,在启动时,我应该渲染 6 条路径(我拥有的每个颜色块 1 条)并用 png 覆盖它们,然后存储这些块的图像,然后每次我需要它们时重新绘制这些块。是否有一种有效的机制来存储你曾经绘制过的东西并重新绘制它?听起来我会再次经常遇到整个绘图 png 的事情,但也许有一种不那么费力的方法可以做类似的事情......

任何建议都非常感谢。谢谢!

0 投票
3 回答
6165 浏览

iphone - CGPathRef 交点

有没有办法找出两个 CGPathRefs 是否相交。在我的例子中,所有的 CGPaths 都有 closePath。

例如,我有两条路径。一条路径是旋转一定角度的矩形,另一条路径是弯曲路径。两条路径的原点会经常变化。在某些时候,它们可能会相交。我想知道它们何时相交。如果您有任何解决方案,请告诉我。

提前致谢

0 投票
3 回答
5478 浏览

iphone - iPhone:使用 Quartz 2D 转换图像

我正在尝试使用 CGContextRef 对图像应用一些转换。我正在使用 CGContextTranslateCTM、CGContextScaleCTM 和 CGContextRotateCTM 函数,但为了简单起见,我们只关注第一个。我想知道为什么下面的代码会产生原始图像?!我错过了什么吗?

此外,翻译后,如何在此图像上绘制另一张图像但具有部分透明度(例如 alpha = 0.5)。

我搜索了很多但没有找到答案,感谢任何帮助...... :)

请注意,我正在从 pixelData 创建上下文,并且 tempImg 是在翻译之后创建的。初始化没有任何问题,因为当前正在生成原始图像,但问题在于我想的翻译..

0 投票
1 回答
578 浏览

objective-c - 来自两行的 CGAffineTransform - 每行由一对 CGPoints 表示

您可能会看到我的目标 - 但有什么简单的方法可以从两行生成 CGAffineTransform - 每行由一对 CGPoints 表示:

结果 CGAffineTransform 应用于 A 线时当然会产生 B 线。它可能涉及平移、缩放和旋转。

当然,我希望能够在复习一些三角函数后自己写这个,但我想知道是否有任何东西可以做到这一点?

注意:我不是要你为我写这个——我只是不想错过一个 Core Graphics 技巧!

0 投票
4 回答
19347 浏览

iphone - 检索 UIImage 的像素 alpha 值

我目前正在尝试获取 UIImageView 中像素的 alpha 值。我从 [UIImageView image] 获得了 CGImage 并由此创建了一个 RGBA 字节数组。Alpha 是预乘的。

然后,我使用 UIImageView 中的坐标计算给定 alpha 通道的数组索引。

但是我没有得到我期望的值。对于图像的完全黑色透明区域,我得到 alpha 通道的非零值。我是否需要转换 UIKit 和 Core Graphics 之间的坐标 - 即:y 轴是否倒置?还是我误解了预乘的 alpha 值?

更新:

@Nikolai Ruhe 的建议是关键。我实际上不需要在 UIKit 坐标和 Core Graphics 坐标之间进行转换。但是,在设置混合模式后,我的 alpha 值符合我的预期:

0 投票
2 回答
2795 浏览

iphone - 重置转换后的 UIView 的原点会变得疯狂

我使用 [UIView transform:] 旋转/缩放 UIVIew,效果很好。但是,一旦我更改视图的框架原点,视图的内容就会开始“奇怪地”缩放,即使我没有执行任何进一步的 CGAffineTransforms。

为什么会出现这种情况?我该如何预防?

更新1:

文档表明该框架在转换后无效。我可以通过它的“中心”属性来移动视图吗?

更新 2:

设置视图中心确实允许我在应用转换后成功转换视图。

0 投票
1 回答
1732 浏览

iphone - 在一个 UIImageView 中将一个 UIImage 绘制在另一个之上

我有几个不同的色块图像,它们在我的游戏中多次重复使用(它是一个简单的益智游戏矩形)。我想动态地对这些图像中的每一个应用透明覆盖(拼图块的符号),它可以是几个不同的图像之一。有没有“最好”的方法来完成这项工作?在这里创建子视图似乎是个坏主意。

我问这个是因为 UIImageView 和 UIImage 似乎没有我需要的方法,而且我还没有深入研究 Core Graphics,但如果我必须的话,我会的。事实上,如果有人知道一个好的教程,请分享。

0 投票
5 回答
9526 浏览

iphone - 是否可以使用 Cocoa Touch 更改字体的字母间距/字距?

我已经在 Internet 上搜索了一段时间,以获取有关如何在 UIKit 中更改字体的字母间距/字距的信息。

我担心的是,就像使用自己的自定义字体一样,你根本做不到。这将是一个可怕的消息。

我知道 Apple 正在保护我们免受这些限制的糟糕设计,但它们也阻止我们实施真正伟大的设计。

人们建议我做什么?

  1. 使用带有标准字距的字体,人们可能无论如何都不会注意到差异。

  2. 找到某人的黑客课程,以获得用户在与他们辛苦赚来的现金分开后应得的外观。

  3. 使用我不知何故忽略的方法,并使用 UIKit 来做,向传授这些隐藏知识的人表示我永远的感激之情。

0 投票
1 回答
3277 浏览

cocoa - Cocoa:Quartz、核心图形、上下文与视图。天啊!

头开始疼。我想我掉得太快了……也许有人可以帮助我想象这些(不包括 OpenGL ES)高级绘图库是如何组合在一起的——或者指向我一些高级文档。例如,我看到在某些情况下可以互换使用“上下文”和“视图”,但是视图有一个(只有一个?)上下文,而上下文没有视图?!?

没有什么太详细了,只需要帮助可视化它们的差异和边界(何时使用一个而不是另一个)。