所以我基本上有一堆路线(想想3D位置),我想在视图中绘制它们。
我之前没有真正做任何图形处理,并且好奇我是如何开始考虑在我的Cocoa应用程序的XCode中做这个。
有人有任何建议吗?
我应该继承NSView吗?我应该使用OpenGL吗?
谢谢!
编辑:所以我能够将NSView子类化,请参见此处:http://groovyape.com/map.png
这是最好的方法吗? (我意识到它只是2D,我害怕尝试3D呵呵)。如果我想让人们点击圈子怎么办?我该怎么做?
答案 0 :(得分:1)
在NSView子类中,您可以覆盖各种鼠标事件处理程序以执行任何操作:
- (void)mouseDown:(NSEvent *)event;
- (void)mouseDragged:(NSEvent *)event;
- (void)mouseUp:(NSEvent *)event;
然后你需要一种方法来知道圈子的位置,这样你就可以知道它们何时被点击。如果你有一个圆圈作为NSPoint和半径那么这样的东西就可以了
- (BOOL)isPoint:(NSPoint)click inCircleAtPoint:(NSPoint)centre withRadius:(float)r
{
float dx = click.x - centre.x;
float dy = click.y - centre.y;
// Get the distance from the click to the centre of the circle
float h = hypot (dx, dy);
// is the distance less than the radius?
return (h < r);
}
- (void)mouseDown:(NSEvent *)event
{
NSPoint clickPoint = [event locationInWindow];
if ([self isPoint:clickPoint inCircleAtPoint:mapPoint withRadius:5.0]) {
// Click was in point
}
}