本文共 1266 字,大约阅读时间需要 4 分钟。
Objective-C实现二维向量及其操作算法
为了实现二维向量的操作,我们定义了一个Vector2D类。该类支持基本的向量运算,包括加法、减法、点乘、模长计算以及归一化操作。以下是类的实现细节。
Vector2D类的定义如下:
@interface Vector2D : NSObject@property (nonatomic, readonly) double x;@property (nonatomic, readonly) double y;@end
实现的核心运算包括:
详细实现代码如下:
@implementation Vector2D- (id)initWithX:(double)x y:(double)y { self = [super init]; self.x = x; self.y = y; return self;}- (Vector2D *)add:(Vector2D *)other { Vector2D *result = [[Vector2D alloc] init]; result.x = self.x + other.x; result.y = self.y + other.y; return result;}- (Vector2D *)subtract:(Vector2D *)other { Vector2D *result = [[Vector2D alloc] init]; result.x = self.x - other.x; result.y = self.y - other.y; return result;}- (double)dotProduct:(Vector2D *)other { return self.x * other.x + self.y * other.y;}- (double)length { return sqrt(self.x * self.x + self.y * self.y);}- (Vector2D *)normalize { double length = [self length]; if (length == 0) { return self; } Vector2D *result = [[Vector2D alloc] init]; result.x = self.x / length; result.y = self.y / length; return result;}@end 该实现涵盖了二维向量的基本运算,适用于常见的向量处理场景。
转载地址:http://hfifk.baihongyu.com/