| | |
| | | carModel->basePoint = main_ant; |
| | | |
| | | for (int i = 0; i < carModel->pointNum; ++i) { |
| | | double tx = carModel->carDesc[i].distance*sin(toRadians(azimuth)); |
| | | double ty = carModel->carDesc[i].distance*cos(toRadians(azimuth)); |
| | | double qrx = carModel->carDesc[i].distance * sin(toRadians(carModel->carDesc[i].angle)); |
| | | double qry = carModel->carDesc[i].distance * cos(toRadians(carModel->carDesc[i].angle)) * cos(toRadians(pitch)); |
| | | |
| | | // double qrx = carModel->carDesc[i].distance * sin(toRadians(carModel->carDesc[i].angle)); |
| | | // double qry = carModel->carDesc[i].distance * cos(toRadians(carModel->carDesc[i].angle)) * cos(toRadians(pitch)); |
| | | // |
| | | // double projDis = sqrt(pow(qrx, 2) + pow(pry, 2)); |
| | | // double projAng; |
| | | // |
| | | // if (fabs(qry) <= EPSILON) { |
| | | // projAng = 90; |
| | | // } else { |
| | | // projAng = toDegree(atan(qrx / qry)); |
| | | // } |
| | | double projectDistance = sqrt(pow(qrx, 2) + pow(qry, 2)); |
| | | double projectAngle = toDegree(acos(qry / projectDistance)); |
| | | |
| | | carModel->carXY[i].X = (tx)*cos(toRadians(carModel->carDesc[i].angle)) - |
| | | (ty)*sin(toRadians(carModel->carDesc[i].angle)) + main_ant.X; |
| | | carModel->carXY[i].Y = (tx)*sin(toRadians(carModel->carDesc[i].angle)) + |
| | | (ty)*cos(toRadians(carModel->carDesc[i].angle)) + main_ant.Y; |
| | | if (carModel->carDesc[i].angle > 180) { |
| | | projectAngle = 360 - projectAngle; |
| | | } |
| | | |
| | | double tx = projectDistance*sin(toRadians(azimuth)); |
| | | double ty = projectDistance*cos(toRadians(azimuth)); |
| | | |
| | | carModel->carXY[i].X = tx * cos(toRadians(projectAngle)) - |
| | | ty*sin(toRadians(projectAngle)) + main_ant.X; |
| | | carModel->carXY[i].Y = tx * sin(toRadians(projectAngle)) + |
| | | ty * cos(toRadians(projectAngle)) + main_ant.Y; |
| | | |
| | | // double tx = carModel->carDesc[i].distance*sin(toRadians(azimuth)); |
| | | // double ty = carModel->carDesc[i].distance*cos(toRadians(azimuth)); |
| | | // |
| | | // carModel->carXY[i].X = (tx)*cos(toRadians(carModel->carDesc[i].angle)) - |
| | | // (ty)*sin(toRadians(carModel->carDesc[i].angle)) + main_ant.X; |
| | | // carModel->carXY[i].Y = (tx)*sin(toRadians(carModel->carDesc[i].angle)) + |
| | | // (ty)*cos(toRadians(carModel->carDesc[i].angle)) + main_ant.Y; |
| | | } |
| | | } |
| | | |