iOS가 아닌 Mac에서 실행되도록이 코드를 빌드하고 있습니다. 나는 스피노와 함께 거의 다 왔지만 데이터가 입력되면서 바늘을 위아래로 움직이는 수학을 이해하지 못한다. 나는 풍속을 실시간으로 측정하고 있으며, 풍속이 변할 때 바늘이 움직이는 게이지 속도계로 표시하려고합니다. 나는 기초가 좋다. 나는 또한 이미지를 소지자에게로드 할 수 있지만 나중에 이미지를 소지자에게로드 할 수 있습니다. 지금 나는 그것이Mac app 용 코코아/석영 2d 속도계에서 바늘을 흔드는 예제 코드가 필요합니다.
- (void)drawRect:(NSRect)rect
{
NSRect myRect = NSMakeRect (21, 21, 323, 325); // set the Graphics class square size to match the guage image
[[NSColor blueColor] set]; // colour it in in blue - just because you can...
NSRectFill (myRect);
[[NSGraphicsContext currentContext] // set up the graphics context
setImageInterpolation: NSImageInterpolationHigh]; // highres image
//-------------------------------------------
NSSize viewSize = [self bounds].size;
NSSize imageSize = { 320, 322 }; // the actual image rectangle size. You can scale the image here if you like. x and y remember
NSPoint viewCenter;
viewCenter.x = viewSize.width * 0.50; // set the view center, both x & y
viewCenter.y = viewSize.height * 0.50;
NSPoint imageOrigin = viewCenter;
imageOrigin.x -= imageSize.width * 0.50; // set the origin of the first point
imageOrigin.y -= imageSize.height * 0.50;
NSRect destRect;
destRect.origin = imageOrigin; // set the image origin
destRect.size = imageSize; // and size
NSString * file = @"/Users/robert/Documents/XCode Projects/xWeather Graphics/Gauge_mph_320x322.png"; // stuff in the image
NSImage * image = [[NSImage alloc] initWithContentsOfFile:file];
//-------------------------------------------
NSSize view2Size = [self bounds].size;
NSSize image2Size = { 149, 17 }; // the orange needle
NSPoint view2Center;
view2Center.x = view2Size.width * 0.50; // set the view center, both x & y
view2Center.y = view2Size.height * 0.50;
NSPoint image2Origin = view2Center;
//image2Origin.x -= image2Size.width * 0.50; // set the origin of the first point
image2Origin.x = 47;
image2Origin.y -= image2Size.height * 0.50;
NSRect dest2Rect;
dest2Rect.origin = image2Origin; // set the image origin
dest2Rect.size = image2Size; // and size now is needle size
NSString * file2 = @"/Users/robert/Documents/XCode Projects/xWeather Graphics/orange-needle01.png";
NSImage * image2 = [[NSImage alloc] initWithContentsOfFile:file2];
// do image 1
[image setFlipped:YES]; // flip it because everything else is in this exerecise
// do image 2
[image2 setFlipped:YES]; // flip it because everything else is in this exerecise
[image drawInRect: destRect
fromRect: NSZeroRect
operation: NSCompositeSourceOver
fraction: 1.0];
[image2 drawInRect: dest2Rect
fromRect: NSZeroRect
operation: NSCompositeSourceOver
fraction: 1.0];
NSBezierPath * path = [NSBezierPath bezierPathWithRect:destRect]; // draw a red border around the whole thing
[path setLineWidth:3];
[[NSColor redColor] set];
[path stroke];
}
// ocords 플립 ... 작업을 취득 할 - (BOOL) isFlipped는 {YES 반환; }
@end
결과 here이다. 그것은 게이지 부분입니다. 이제는 입력에 따라 바늘을 움직여야합니다.
감사합니다. 예, 알았습니다. 애플 코드는 매우 고밀도이지만 맥에서 작동하도록 만들었다. 프로젝트는 끝까지 길다.하지만 효과가있다. –