- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下绘图代码:
[[NSColor redColor] set];
NSRect fillRect = NSMakeRect(bounds.size.width - 20.0f, 0.0f, 20.0f, 20.0f);
NSBezierPath *bezier1 = [NSBezierPath bezierPathWithRoundedRect:fillRect xRadius:10.0f yRadius:10.0f];
[bezier1 fill];
NSRect fill2 = fillRect;
fill2.origin.x += 5;
fill2.origin.y += 5;
fill2.size.width -= 10.0f;
fill2.size.height -= 10.0f;
NSBezierPath *bezier2 = [NSBezierPath bezierPathWithRoundedRect:fill2 xRadius:5.0f yRadius:5.0f];
[[NSColor greenColor] set];
[bezier2 fill];
结果如下:
如何使内部绿色圆圈透明?用透明颜色替换绿色 NSColor 不起作用,合乎逻辑;-)
有没有办法与 NSBezierPath 实例相交或用其他方法解决这个问题?
最佳答案
我认为您正在寻找的是环的贝塞尔曲线路径,您可以通过创建单个 NSBezierPath
并设置缠绕规则来实现: p>
[[NSColor redColor] set];
NSRect fillRect = NSMakeRect(bounds.size.width - 20.0f, 0.0f, 20.0f, 20.0f);
NSBezierPath *bezier1 = [NSBezierPath new];
[bezier1 setWindingRule:NSEvenOddWindingRule]; // set the winding rule for filling
[bezier1 appendBezierPathWithRoundedRect:fillRect xRadius:10.0f yRadius:10.0f];
NSRect innerRect = NSInsetRect(fillRect, 5, 5); // the bounding rect for the hole
[bezier1 appendBezierPathWithRoundedRect:innerRect xRadius:5.0f yRadius:5.0f];
[bezier1 fill];
NSEvenOddWindingRule
规则通过考虑从该点到整个路径边界之外的一条线来确定是否填充特定点;如果该线穿过偶数条路径,则不填充,否则填充。因此内圆中的任何点都不会被填充,而两点之间的点将被填充 - 结果是一个环。
关于cocoa - 凹 NSBezierPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11073041/
我有以下绘图代码: [[NSColor redColor] set]; NSRect fillRect = NSMakeRect(bounds.size.width - 20.0f, 0.0f, 20
给定一组相交的矩形,是否有标准算法来找到它们的边界多边形? (多边形的边界与矩形的并集完全相同。)可以假设所有矩形都以相同的方式定向,边沿两个正交轴。 在搜索中,我找到了凸边界多边形的算法,但在这里我
我想绘制非网格 3D 数据 (x, y, z) 的 matplotlib contour 或 contourf 图,该图在 x 中呈 C 形和 y(见草图)——因此数据周围的部分封闭外壳在 x 和 y
我需要绘制带有一些顶点的缩进(凹)实心多边形。我用 void HelloWorld::draw(void) { CCPoint vertices[5] = {ccp(200, 200), cc
这个有点难解释。我有一个整数列表。因此,例如,[1, 2, 4, 5, 8, 7, 6, 4, 1] - 当根据元素编号绘制时,它类似于凸图。我如何以某种方式从列表中提取此“形状”特征?它不必特别准确
我是一名优秀的程序员,十分优秀!