0% found this document useful (0 votes)
6 views6 pages

Control Point Modification Analysis

Uploaded by

20103060
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views6 pages

Control Point Modification Analysis

Uploaded by

20103060
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

clc; clear; close all;

%% === Step 1: Define Original Control Points ===


upper_cp = [
9.4866e-05 -0.0011563
0.005862 0.01116
0.0112 0.014493
0.017074 0.015589
0.028034 0.01735
0.12181 0.023797
0.23774 0.021358
0.42076 0.023313
0.45841 0.028926
0.46235 0.029719
];

lower_cp = [
9.4866e-05 -0.0011563
0.0035485 -0.0091313
0.007586 -0.013067
0.016653 -0.017347
0.036891 -0.025853
0.063068 -0.032909
0.087344 -0.036016
0.1696 -0.031535
0.37688 0.0027707
0.46235 0.027561
];

%% === Step 2: Flap Coordinates (unchanged) ===


flap1 = [
0.78138031 0.158624699
0.785287007 0.160151642
0.778551984 0.157524172
0.771809828 0.154914274
0.765066912 0.152309091
0.758330201 0.149686354
0.751608171 0.147026235
0.744904129 0.1443211
0.738212662 0.14158498
0.731519428 0.138853193
0.724805705 0.136172246
0.718054042 0.133588481
0.711253313 0.131136901
0.70440042 0.128835217
0.697497865 0.126687017
0.690550796 0.124687433
0.68356467 0.122828782
0.676544414 0.121103458
0.669494948 0.119501685
0.662421804 0.118007825
0.655331515 0.116597108
0.64823139 0.115236938
0.641127913 0.113894278
0.634025802 0.112544428
0.626926796 0.111178334
0.619829666 0.109801549
0.612732644 0.108426139
0.605633412 0.107061247
0.598532193 0.1057067
0.591430471 0.104354795
0.584329825 0.102997248
0.577230598 0.101632294
0.570131289 0.100267774
0.56302974 0.098914971
0.555924978 0.097579138
0.548818809 0.096250809
0.54171556 0.094906972
0.534619326 0.093526588
0.527530364 0.09210933
0.5204418 0.090690047
0.513342729 0.0893245
0.506227052 0.088048371
0.499100518 0.086833981
0.49198206 0.085573653
0.484891919 0.084163149
0.477823472 0.082646901
0.47072004 0.081306826
0.463624482 0.079925326
0.456548819 0.078466603
0.450934226 0.074170154
0.449018294 0.067328104
0.451595264 0.060682919
0.457628832 0.056976079
0.464825795 0.056534222
0.472055544 0.056588119
0.479283691 0.056693547
0.486498957 0.057129304
0.49368506 0.05790959
0.500844325 0.058914934
0.50798385 0.060049501
0.515104939 0.061295283
0.52220015 0.062676572
0.529263775 0.064217733
0.536291905 0.065910609
0.543290448 0.067720913
0.550269595 0.069610669
0.557230293 0.07155926
0.564171667 0.073579541
0.571081386 0.075704098
0.577946843 0.077968044
0.584757992 0.080389027
0.591516764 0.082955414
0.598232908 0.085630276
0.604923956 0.088367379
0.611605951 0.091124054
0.618292552 0.093874564
0.624985573 0.09660688
0.631686265 0.099318512
0.638398316 0.102007956
0.645121094 0.104663772
0.651864561 0.10727125
0.658630757 0.109813548
0.665423814 0.112284913
0.672239818 0.114695255
0.679068259 0.117071303
0.685895646 0.119448591
0.692709756 0.121861837
0.699502515 0.124335229
0.706270674 0.126877082
0.713014728 0.129482594
0.719738187 0.132139049
0.726446623 0.134830958
0.733147367 0.13754411
0.73984506 0.140264951
0.746544342 0.142981877
0.753248865 0.145685025
0.75996309 0.148367125
0.766687722 0.151021631
0.773424124 0.153644361
0.780173392 0.156232971
0.784920726 0.158029794
];

flap2 = [
0.996279887 0.287802774
0.999990588 0.289758316
0.99535485 0.287316494
0.990714744 0.284882984
0.986073631 0.282451392
0.981436941 0.280011383
0.976809717 0.277553475
0.972194554 0.275074587
0.967585692 0.272580825
0.962975707 0.270090725
0.95835188 0.26762645
0.953703091 0.265209637
0.949022249 0.262855537
0.944307139 0.260570841
0.939558891 0.258355857
0.934780145 0.256207385
0.929973802 0.254121368
0.925142446 0.252093946
0.92028882 0.250120408
0.915416424 0.248193686
0.91052993 0.246303049
0.905635049 0.244434677
0.900736812 0.242574394
0.895839649 0.240711591
0.890945095 0.238841791
0.886052464 0.236966864
0.881159902 0.235091754
0.876265826 0.233220824
0.871369982 0.231354742
0.866473398 0.229490629
0.861577378 0.227624726
0.856682473 0.225755321
0.851787897 0.223884795
0.846892052 0.222017993
0.841993941 0.2201585
0.837094261 0.218304751
0.832194127 0.216447798
0.827299497 0.21457828
0.822411612 0.212691248
0.817527357 0.210794707
0.812638505 0.208910146
0.807736894 0.207059018
0.802821374 0.20524514
0.797902771 0.203439631
0.79300032 0.201590811
0.788124363 0.199673201
0.783251078 0.197748822
0.778342926 0.195915212
0.773453183 0.19403124
0.768680606 0.191900663
0.765749211 0.187730177
0.768505277 0.183696348
0.773643876 0.183120393
0.778761368 0.184226353
0.783838478 0.185520811
0.788910368 0.186835065
0.793944315 0.188287473
0.798933381 0.189888867
0.803888039 0.191591583
0.808822572 0.193352879
0.813740144 0.195161279
0.818636755 0.197025512
0.823507004 0.198957554
0.828349586 0.200957945
0.833168699 0.203014267
0.837970971 0.205109581
0.842761246 0.207232341
0.847538551 0.209384044
0.852296737 0.211577649
0.857027445 0.213829879
0.861723801 0.216152864
0.866384581 0.218546445
0.87101557 0.22099723
0.875627163 0.223484307
0.880230756 0.225986221
0.884834663 0.228487542
0.889442735 0.230981181
0.894055986 0.233465221
0.898674857 0.235938801
0.903301249 0.23839828
0.907938908 0.24083643
0.912591686 0.243245615
0.91726146 0.245621656
0.921946485 0.247967519
0.926640975 0.250294387
0.931336901 0.252618357
0.936026058 0.254955944
0.940702097 0.257319658
0.945362033 0.259714957
0.950006087 0.262140906
0.954636738 0.264592337
0.959257642 0.267062128
0.963872552 0.269543088
0.968484946 0.272028703
0.973097932 0.274513271
0.977714087 0.276991944
0.982335474 0.279460843
0.986963614 0.281917038
0.991599537 0.284358489
0.996243837 0.286783993
0.999968527 0.288714167
];

%% === Step 3: Bézier Evaluation Function ===


function pts = bezier_eval(ctrl, t)
n = size(ctrl,1)-1;
pts = zeros(length(t),2);
for i=0:n
coeff = nchoosek(n,i)*(1-t).^(n-i).*t.^i;
coeff = coeff(:);
pts(:,1) = pts(:,1) + coeff*ctrl(i+1,1);
pts(:,2) = pts(:,2) + coeff*ctrl(i+1,2);
end
end

%% === Step 4: Parameters ===


factors = [0.5, 0.75, 1.25, 1.5];
upper_mod_idx = [5,6,7];
lower_mod_idx = [6,8,9];
t = linspace(0,1,50);

%% === Step 5: Plot and Save Function (no CPs shown) ===
function plot_save_bezier(upper_bez, lower_bez, flap1, flap2, title_str, filename)
figure('Visible','off'); hold on; axis equal; grid on;
plot(upper_bez(:,1), upper_bez(:,2),'r','LineWidth',2);
plot(lower_bez(:,1), lower_bez(:,2),'b','LineWidth',2);
plot(flap1(:,1), flap1(:,2),'k','LineWidth',1.2);
plot(flap2(:,1), flap2(:,2),'k','LineWidth',1.2);
title(title_str); xlabel('x/c'); ylabel('y/c');
saveas(gcf,[filename,'.png']); close;
end

%% === CASE 1: Upper CP modification ===


for f = factors
tmp_upper = upper_cp;
tmp_upper(upper_mod_idx,2) = tmp_upper(upper_mod_idx,2) * f;

upper_bez = bezier_eval(tmp_upper, t);


lower_bez = bezier_eval(lower_cp, t);

data_to_save = [upper_bez; lower_bez; flap1; flap2];


filename_txt = ['Set1_UpperFactor_',num2str(f)];
writematrix(data_to_save, [filename_txt,'.txt'],'Delimiter','tab');

plot_save_bezier(upper_bez, lower_bez, flap1, flap2, ...


['Upper CP modified by factor ',num2str(f)], filename_txt);
end

%% === CASE 2: Lower CP modification ===


for f = factors
tmp_lower = lower_cp;
tmp_lower(lower_mod_idx,2) = tmp_lower(lower_mod_idx,2) * f;

upper_bez = bezier_eval(upper_cp, t);


lower_bez = bezier_eval(tmp_lower, t);

data_to_save = [upper_bez; lower_bez; flap1; flap2];


filename_txt = ['Set1_LowerFactor_',num2str(f)];
writematrix(data_to_save, [filename_txt,'.txt'],'Delimiter','tab');
plot_save_bezier(upper_bez, lower_bez, flap1, flap2, ...
['Lower CP modified by factor ',num2str(f)], filename_txt);
end

%% === CASE 3: Upper + Lower CP modification ===


for f = factors
tmp_upper = upper_cp;
tmp_lower = lower_cp;
tmp_upper(upper_mod_idx,2) = tmp_upper(upper_mod_idx,2) * f;
tmp_lower(lower_mod_idx,2) = tmp_lower(lower_mod_idx,2) * f;

upper_bez = bezier_eval(tmp_upper, t);


lower_bez = bezier_eval(tmp_lower, t);

data_to_save = [upper_bez; lower_bez; flap1; flap2];


filename_txt = ['Set1_UpperLowerFactor_',num2str(f)];
writematrix(data_to_save, [filename_txt,'.txt'],'Delimiter','tab');

plot_save_bezier(upper_bez, lower_bez, flap1, flap2, ...


['Upper + Lower CP modified by factor ',num2str(f)], filename_txt);
end

You might also like