Merge pull request #20761 from komakai:fix_rect2f

pull/20771/head
Alexander Alekhin 3 years ago
commit 280dc77f8b
  1. 8
      modules/core/misc/objc/common/Rect2d.mm
  2. 8
      modules/core/misc/objc/common/Rect2f.mm
  3. 24
      modules/core/misc/objc/test/RectTest.swift

@ -64,10 +64,10 @@
} }
- (instancetype)initWithPoint:(Point2d*)point1 point:(Point2d*)point2 { - (instancetype)initWithPoint:(Point2d*)point1 point:(Point2d*)point2 {
int x = (point1.x < point2.x ? point1.x : point2.x); double x = (point1.x < point2.x ? point1.x : point2.x);
int y = (point1.y < point2.y ? point1.y : point2.y); double y = (point1.y < point2.y ? point1.y : point2.y);
int width = (point1.x > point2.x ? point1.x : point2.x) - x; double width = (point1.x > point2.x ? point1.x : point2.x) - x;
int height = (point1.y > point2.y ? point1.y : point2.y) - y; double height = (point1.y > point2.y ? point1.y : point2.y) - y;
return [self initWithX:x y:y width:width height:height]; return [self initWithX:x y:y width:width height:height];
} }

@ -64,10 +64,10 @@
} }
- (instancetype)initWithPoint:(Point2f*)point1 point:(Point2f*)point2 { - (instancetype)initWithPoint:(Point2f*)point1 point:(Point2f*)point2 {
int x = (point1.x < point2.x ? point1.x : point2.x); float x = (point1.x < point2.x ? point1.x : point2.x);
int y = (point1.y < point2.y ? point1.y : point2.y); float y = (point1.y < point2.y ? point1.y : point2.y);
int width = (point1.x > point2.x ? point1.x : point2.x) - x; float width = (point1.x > point2.x ? point1.x : point2.x) - x;
int height = (point1.y > point2.y ? point1.y : point2.y) - y; float height = (point1.y > point2.y ? point1.y : point2.y) - y;
return [self initWithX:x y:y width:width height:height]; return [self initWithX:x y:y width:width height:height];
} }

@ -101,6 +101,30 @@ class RectTest: OpenCVTestCase {
XCTAssertEqual(1, r.height); XCTAssertEqual(1, r.height);
} }
func testRect2fPointPoint() {
let p1 = Point2f(x:4.3, y:4.1)
let p2 = Point2f(x:2.7, y:3.9)
let r = Rect2f(point: p1, point: p2)
XCTAssertNotNil(r);
XCTAssertEqual(2.7, r.x);
XCTAssertEqual(3.9, r.y);
XCTAssertEqual(1.6, r.width, accuracy: OpenCVTestCase.FEPS);
XCTAssertEqual(0.2, r.height, accuracy: OpenCVTestCase.FEPS);
}
func testRect2dPointPoint() {
let p1 = Point2d(x:4.7879839, y:4.9922311)
let p2 = Point2d(x:2.1213123, y:3.1122129)
let r = Rect2d(point: p1, point: p2)
XCTAssertNotNil(r);
XCTAssertEqual(2.1213123, r.x);
XCTAssertEqual(3.1122129, r.y);
XCTAssertEqual(2.6666716, r.width, accuracy: OpenCVTestCase.EPS);
XCTAssertEqual(1.8800182, r.height, accuracy: OpenCVTestCase.EPS);
}
func testRectPointSize() { func testRectPointSize() {
let p1 = Point(x: 4, y: 4) let p1 = Point(x: 4, y: 4)
let sz = Size(width: 3, height: 1) let sz = Size(width: 3, height: 1)

Loading…
Cancel
Save