私は最初のポイントをキャプチャする必要があるiOSカメラベースのアプリに取り組んでおり、次に現在のフォーカスポイントから最初にキャプチャされたポイントまで線を引く必要があります。MagicPlan はこのように機能します。
ここに画像があります:
加速度計の値とデバイスの傾斜角度を使用して、最初のポイントのポイントを修正しようとしました。しかし、これまでのところ運がありません。そして、最初の点から2番目の点まで線を引くにはどうすればよいですか?
これは私がこれまでに試したコードです:
if (self.motionManager.deviceMotionAvailable)
{
[self.motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue]
withHandler: ^(CMDeviceMotion *motion, NSError *error) {
CATransform3D transform;
transform = CATransform3DMakeRotation(motion.attitude.pitch, 1, 0, 0);
transform = CATransform3DRotate(transform,motion.attitude.roll, 0, 1, 0);
transform = CATransform3DRotate(transform,motion.attitude.yaw, 0, 0, 1);
self.viewObject.layer.transform = transform;
}];
}
if (self.motionManager.deviceMotionActive)
{
/**
* Pulling gravity values from deviceMotion sensor
*/
CGFloat x = [self convertRadianToDegree:self.motionManager.deviceMotion.gravity.x];
CGFloat y = [self convertRadianToDegree:self.motionManager.deviceMotion.gravity.y];
CGFloat z = [self convertRadianToDegree:self.motionManager.deviceMotion.gravity.z];
CGFloat r = sqrtf(x*x + y*y + z*z);
/**
* Calculating device forward/backward title angle in degrees
*/
CGFloat tiltForwardBackward = acosf(z/r) * 180.0f / M_PI - 90.0f;
[self.lblTilForwardBackward setText:[@(tiltForwardBackward) stringValue]];
}