我想画这样的球体:

下面的代码生成圆的顶点并在TIMAGE上绘制一个圆但我想要它用于SPHERE:
for i := 0 to 360 do begin
//Find value of X and Y
pntCordXY.X := Radius * Cos(DegToRad(i));
pntCordXY.Y := Radius * Sin(DegToRad(i));
if i = 0 then
image1.Canvas.MoveTo(Round(pntCordXY.X), Round(pntCordXY.Y))
else
image1.Canvas.LineTo(Round(pntCordXY.X), Round(pntCordXY.Y));
end;
Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个球形爆发射线以检查碰撞,但是根据每条射线撞击的内容或位置发生特定的相互作用.因此,为什么我使用光线而不是更简单的东西,如OverlapSphere.
我正在寻找如何制作球体的原因是因为我可以使用相同的数学计算我的光线,让它们到达球体所在的顶点.但是我能找到制作球体的每一种方式都会让线条越来越接近极点,这很有意义,因为它很容易做到.但是你可以想象,它对我当前的项目没那么有用.
TL; DR: 如何制作具有等距顶点的球体?如果它的罚款不完全等距,它只需要非常接近.如果发生这种情况,如果你可以给出差异的多少,以及在哪里,如果适用,那将是很好的.
我手动画了一个球体,最后:)我希望我的球体是红色的,但轮廓是绿色的:

为了实现这一目标,我做了以下工作.我画了一个红色的实心球体,然后我绘制了相同的球体,但线框和绿色.当我打开DEPTH_TEST时,我得到了一些奇怪的行为,如下所示:
为了避免这种奇怪的行为,我只是绘制了有线球体,(1.001, 1.001, 1.001)并且绘制了所有内容,就像在第一张图片中一样.我的问题是,我是一个真正的新手,做得不好吗?有没有更好的方法来做我想做的事情?提前致谢.
PS我为了练习而手动绘制球体,我知道有葡萄糖二次曲线例程和过剩球体的存在.
好吧,我不知道如何正确解释它.在这里,查看我想要制作的截图.我的设计师给了我这个.如果我找不到解决方案,我将使用图像而不使用代码.用CSS3可以做到这一点吗?

看到那个盒子里面的三角形?我想做这个.谢谢!
我正在制作一个用户玩家在屏幕上放置圆圈的游戏.重要的是圆圈永远不会重叠,所以我需要从光标中找出最近的可能自由点.我找到了圆形打包算法,但它们似乎不适合我的问题.我也在过去为盒子(这里)解决了类似的问题,但是用圆圈,我似乎无法弄明白.
我想出了当它与一个圆相交时,或者甚至当涉及两个时,我如何找到最近的自由位置.但是,我找不到一个可以处理任何排列中具有任意数量圆圈的复杂情况的稳健算法.
问题的精确描述:我有一个2D空间,任意数量的非交叉圆,都具有相同的半径(虽然这可能无关紧要).我想找到下一个圆的位置,使其不与任何其他圆相交,并且哪个中心[x,y]最接近指定位置[x,y].
任何类型的建议(参考,方法或(Java)库).
ps如果解决方案包括确保圆圈保持在特定的边界框内(即显示),则奖励积分.
我的最终解决方案:(根据David Wallace的建议)
请注意,这不能很好地完成,但在我的情况下,用户正在拖动屏幕上的新圆圈就足够了.它适用于大多数情况下,有些情况下没有,通常当有很多圆圈非常接近时,新圆圈只停留在最后一个位置(这是有效的).然后,用户可以决定进一步拖动它,并且在他想要新圆圈的位置更精确.
我试图弄清楚如何设计一个能够以O((n + s)log n)复杂度完成此任务的算法.是交叉点的数量.我试过在网上搜索,却找不到东西.
无论如何,我意识到拥有一个好的数据结构是关键.我在java:TreeMap中使用Red Black Tree实现.我还使用着名的(?)扫描线算法来帮助我处理我的问题.
让我先解释一下我的设置.
我有一个调度程序.这是一个PriorityQueue,我的圈子根据最左边的坐标排序(升序).scheduler.next()基本上轮询PriorityQueue,返回下一个最左边的圆圈.
public Circle next()
{ return this.pq.poll(); }
Run Code Online (Sandbox Code Playgroud)
我这里还有一个包含4n个事件点的数组.授予每个圆圈有2个事件点:大多数左x和最右x.调度程序有一个方法sweepline()来获取下一个事件点.
public Double sweepline()
{ return this.schedule[pointer++]; }
Run Code Online (Sandbox Code Playgroud)
我也有状态.扫描线状态更精确.根据该理论,状态包含有资格相互比较的圆圈.在整个故事中拥有扫描线的关键在于你能够排除很多候选人,因为他们根本不在当前圈子的半径范围内.
我用一个实现了状态TreeMap<Double, Circle>.双重是circle.getMostLeftCoord().
此TreeMap保证O(log n)用于插入/删除/查找.
算法本身的实现方式如下:
Double sweepLine = scheduler.sweepline();
Circle c = null;
while (notDone){
while((!scheduler.isEmpty()) && (c = scheduler.next()).getMostLeftCoord() >= sweepLine)
status.add(c);
/*
* Delete the oldest circles that the sweepline has left behind
*/
while(status.oldestCircle().getMostRightCoord() < sweepLine)
status.deleteOldest();
Circle otherCircle;
for(Map.Entry<Double, Circle> entry: status.keys()){
otherCircle = entry.getValue();
if(!c.equals(otherCircle)){ …Run Code Online (Sandbox Code Playgroud) 我刚刚更新到Xcode 4.6到5.1和iOS 7.0到7.1.1现在我的项目显示警告警报视图"OCUnit已弃用项目"项目名称"使用OCUnit进行单元测试,不推荐使用.选择"转换为XCTest"以更新此项目以使用XCTest进行单元测试."

当我提交到应用商店时,它会影响我的应用吗?
如何删除此警告(或)如何更新我的应用程序以使用XCTest进行单元测试.
这是CSS三角形的标准CSS:
display: inline-block;
vertical-align: middle;
content: " ";
border-right: 4px solid transparent;
border-left: 4px solid transparent;
border-top: 6px solid black;
width: 0;
height: 0;
Run Code Online (Sandbox Code Playgroud)
它运行良好,但它在OSX下的Firefox中呈现像素化边缘.
幸运的是,Firefox很容易!所以我们只应用border-style:
border-style: solid dotted none;
Run Code Online (Sandbox Code Playgroud)
到目前为止一直很好,问题是当你设置边框样式时它在IE10 +中完全中断(渲染一个矩形)(但在IE8中工作,这很疯狂!):

这是一篇关于它的博客文章(尝试在IE11中打开它,虽然你有上面的屏幕):
http://blog.dustinboersma.com/post/45768836072/fixing-osx-firefox-border-triangle-pixelation
任何想法如何在Firefox和IE10中工作?
我正在尝试使用MTKView. 我有MTKView一个代表。我将视图的sampleCount属性设置为 4。我创建了一个rasterSampleCount设置为 4的管道状态描述符,并使用它来创建渲染时使用的渲染管道状态。
在代理的draw(in:)方法,我通过获取该视图的当前渲染通道描述符和设置创建渲染过程描述storeAction到multisampleResolve。我也设置了尝试storeAndMultisampleResolve无济于事。
我为渲染通道描述符创建了一个解析纹理,它与视图具有相同的宽度和高度以及相同的像素格式。
鉴于上述情况,我在渲染过程中得到了一个完整的红框。我已经使用金属调试器来查看纹理,并且视图的纹理和解析纹理都有正确的渲染。我在 AMD 机器上,全红色纹理通常表示未初始化的纹理。
我需要做些什么才能让渲染进入屏幕?
下面是我设置视图、管道状态和解析纹理的方法:
metalView = newMetalView
metalView.sampleCount = 4
metalView.clearColor = MTLClearColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
device = newMetalView.device!
let metalLibrary = device.makeDefaultLibrary()!
let vertexFunction = metalLibrary.makeFunction(name: "vertexShader")
let fragmentFunction = metalLibrary.makeFunction(name: "fragmentShader")
let pipelineStateDescriptor = MTLRenderPipelineDescriptor.init()
pipelineStateDescriptor.label = "Particle Renderer"
pipelineStateDescriptor.vertexFunction = vertexFunction
pipelineStateDescriptor.fragmentFunction = fragmentFunction
pipelineStateDescriptor.colorAttachments [ 0 ].pixelFormat = metalView.colorPixelFormat …Run Code Online (Sandbox Code Playgroud) 我正在尝试显示或上传UIImage,但出现此错误。
“发现扩展时遇到错误:错误域= PlugInKit代码= 13”查询已取消“ UserInfo = {NSLocalizedDescription =查询已取消}”
import UIKit
class ViewController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
// linked labels and UiButtons
@IBOutlet weak var ifix: UILabel!
@IBOutlet weak var UIImage: UIImageView!
let someImageView: UIImageView = {
let theImageView = UIImageView()
theImageView.translatesAutoresizingMaskIntoConstraints = false // call this property so the image is added to your view
return theImageView
}()
@IBAction func UploadImage(_ sender: UIButton) {
let myPickerController = UIImagePickerController()
myPickerController.delegate = self;
myPickerController.sourceType = UIImagePickerController.SourceType.photoLibrary
self.present(myPickerController, animated: true, completion: nil)
} …Run Code Online (Sandbox Code Playgroud)