From fc49707b0879cb3c2c6b338ca8a69c8bbfef088c Mon Sep 17 00:00:00 2001 From: waiwaylee Date: Wed, 23 Sep 2026 15:40:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=EF=BC=9A1=E3=80=81=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E5=90=91=E7=AB=99/=E8=83=8C=E7=AB=99=E7=9A=84?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E9=80=BB=E8=BE=91=EF=BC=8C=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E9=80=9F=E5=BA=A6=E6=A8=A1=E7=B3=8A=E6=97=B6=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E6=9C=89=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: waiwaylee --- data_process_class_dll/data_process.cpp | 12 ++++++++++-- data_process_class_dll/track_asso.cpp | 23 ++++++++++++++++++++--- data_process_class_dll/track_asso_tas.cpp | 19 ++++++++++++++++++- 3 files changed, 48 insertions(+), 6 deletions(-) diff --git a/data_process_class_dll/data_process.cpp b/data_process_class_dll/data_process.cpp index 2124d11..46601f4 100644 --- a/data_process_class_dll/data_process.cpp +++ b/data_process_class_dll/data_process.cpp @@ -268,11 +268,14 @@ int Data_Process:: track_delete(int delete_track_num, //手动 int Data_Process::primary_target_add(int track_index) { - for ( size_t i=0; i *point_ //输出航迹 for (size_t i=0;isize();i++) { // 输出更新航迹条件: -// if((*trust_track)[i].manual_tracking_flag==0) -// { if((*trust_track)[i].Track_Update_Flag==1){ (*trust_track)[i].Track_Update_Flag=0; *Trust_track_num_Output= *Trust_track_num_Output+1; @@ -111,7 +109,6 @@ int Track_Asso:: track_asso_process(std::vector *point_ Trust_Track_Output[*Trust_track_num_Output-1][0].point_type=0; Trust_Track_Output[*Trust_track_num_Output-1][0].prf_point = static_cast((*trust_track)[i].prf_point); Trust_Track_Output[*Trust_track_num_Output-1][0].track_snr = static_cast((*trust_track)[i].snr_point); - Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=Trust_Track_Output[*Trust_track_num_Output-1][0].vr_point>0?1:0; //直接输出点迹高度-20260605 //Trust_Track_Output[*Trust_track_num_Output-1][0].z = (*trust_track)[i].range_point * sin((*trust_track)[i].elev_point/180.0*PI); @@ -125,6 +122,26 @@ int Track_Asso:: track_asso_process(std::vector *point_ Trust_Track_Output[*Trust_track_num_Output-1][0].v_x=static_cast((*trust_track)[i].X[1]); Trust_Track_Output[*Trust_track_num_Output-1][0].v_y=static_cast((*trust_track)[i].X[4]); + // Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=Trust_Track_Output[*Trust_track_num_Output-1][0].vr_point>0?1:0; + + if(acos((-x * (*trust_track)[i].X[1] - y * (*trust_track)[i].X[4]) / r / Trust_Track_Output[*Trust_track_num_Output-1][0].Range_V) < PI / 4) + { + Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=1; + // if(r*abs(sin(azi - Direction_Angle))<500) + // { + // Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=1; + // } + // else + // { + // Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=0; + // } + } + else + { + Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=0; + } + + Trust_Track_Output[*Trust_track_num_Output-1][0].track_rcs = static_cast((*trust_track)[i].RCS); Trust_Track_Output[*Trust_track_num_Output-1][0].pitch_num = (*trust_track)[i].pitch_num; diff --git a/data_process_class_dll/track_asso_tas.cpp b/data_process_class_dll/track_asso_tas.cpp index 411eeb2..6f74c68 100644 --- a/data_process_class_dll/track_asso_tas.cpp +++ b/data_process_class_dll/track_asso_tas.cpp @@ -88,7 +88,24 @@ long long latest_timestamp //最新时间戳 Trust_Track_Output[*Trust_track_num_Output-1][0].v_y=static_cast((*trust_track)[i].X[4]); Trust_Track_Output[*Trust_track_num_Output-1][0].track_rcs = static_cast((*trust_track)[i].RCS); Trust_Track_Output[*Trust_track_num_Output-1][0].pitch_num = (*trust_track)[i].pitch_num; - Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=Trust_Track_Output[*Trust_track_num_Output-1][0].vr_point>0?1:0; + // Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=Trust_Track_Output[*Trust_track_num_Output-1][0].vr_point>0?1:0; + + if(acos((-x * (*trust_track)[i].X[1] - y * (*trust_track)[i].X[4]) / r / Trust_Track_Output[*Trust_track_num_Output-1][0].Range_V) < PI / 4) + { + Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=1; + // if(r*abs(sin(azi - Direction_Angle))<500) + // { + // Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=1; + // } + // else + // { + // Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=0; + // } + } + else + { + Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=0; + } std::memcpy(Trust_Track_Output[*Trust_track_num_Output-1][0].speed_dim, (*trust_track)[i].speed_dim, sizeof(Trust_Track_Output[*Trust_track_num_Output-1][0].speed_dim)); std::memcpy(Trust_Track_Output[*Trust_track_num_Output-1][0].range_dim, (*trust_track)[i].range_dim, sizeof(Trust_Track_Output[*Trust_track_num_Output-1][0].range_dim));