АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Робота із математичною моделлю складної поверхні. Розглянемо приклад структури даних складної поверхні, яка розташована у текстовому файлі 17000.txt

Читайте также:
  1. Аналітична математична модель поверхні (підводного аппарата)
  2. Архітектура та робота ОС Windows Linux
  3. АУДИТОРНА РОБОТА
  4. АУДИТОРНА РОБОТА
  5. Визначення контуру перерізу складної поверхні із довільною характерною абсцисою.
  6. Вплив технологічних факторів на шорсткість поверхні деталі.
  7. Геодезичний контроль за будівельними роботами
  8. Геометричні характеристики контуру перетину поверхні площиною довільного розташування
  9. Електричні параметри різних видів поверхні Землі
  10. Енергія та робота річок
  11. Зміна рівневої поверхні океану
  12. І. Робота над поняттями (дефініціями).

Розглянемо приклад структури даних складної поверхні, яка розташована у текстовому файлі 17000.txt. У ньому описано перерізи поверхні серією паралельних площин, які у свою чергу паралельні координатній площині YOZ. У зв’язку з тим, що судно симетрічне відносно координатній площини XOZ, у файлі наведено тільки праві гілки перерізів. Розглянемо структуру даних для окремого.

 

&s 3 -82.70

\ 9

0.11 7.070 1

0.46 7.15w 6

4.01 8.94w 7

6.9010.73w 8

9.0213.78w 9

10.3417.05w10

10.8918.60d 1

11.0919.17d 1s

0.0019.170 1

12.9118.60d 1

13.0619.17d 1s

0.0019.170 1

Перший рядок містить такі дані:

&s 3 – номер перерізу - 3;

-82.70 – абсциса перерізу у прийнятой системі координат (7 знаків);

Другий рядок:

\ 9 – кількість точок на перерізі (наведено тільки права гілка);

Третій рядок і до початку опису наступного перерізу (кінця опису поточного перерізу) містять координати точок на контурі (по 5 знаків для кожної координати):

0.11 – ордината точки на контурі - Y;

7.07 – апліката точки на контурі - Z;

Така структура даних прийнята для всіх 29 перерізів судна.

Основою для роботи із складною повехнею буде отримання контуру перерізу за його номером (або абсцисою). Код фрагменту програми для цього (отримання контуру за його номером) наведено нижче:

type

MasD=array of extended; //динамічний масив, у який буде розташовано координати точок переізу

var

Ft:TextFile;

I,N,M:integer;

X,Y: MasD; //масиви для зберігання координат точок

St,StX,StY,St1:string;

 

begin

N:=15; // номер перерізу у файлі

assignfile(Ft,'17000.txt');

reset(Ft);

readln(Ft,St);

if N < 10 then St1:='&s '+IntToStr(N) //формування заголовку необхідного перерізу

else St1:='&s'+IntToStr(N); //для пошуку у файлі

while Pos(St1,St) <> 1 do readln(Ft,St); //пошук необхідного перерізу у файлі

readln(Ft,St);

M:=StrToInt(Copy(St,2,2)); //кількість точок на перерізі

SetLength(X,M); //встановити розмір динамічного масиву для зберігання координат перерізу

SetLength(Y,M);

for I:=1 to M do

begin //считування з файлу координат точок перерізу і запис їх у масиви

readln(Ft,St);

X[I-1]:=StrToFloat(Copy(St,8,5));

Y[I-1]:=StrToFloat(Copy(St,13,5));

end;

for I:=1 to M do

begin //виведення координат точок перерізу на екран

write(X[I-1]:6:2,' ',Y[I-1]:6:2,' ');

if I mod 5 =0 then writeln;

end;

readln;

end.

 

 

const

ks=20; {кількість базових перерізів}

kt=124; {загальна кількість точок на всіх базових перерізах}

type

m1=array[1..kt] of real; { масив ординат та аплікат точок базових перерізів }

m2=array[1..ks] of real; { масив абсцис базових перерізів }

m3=array[1..ks] of integer; { масив кількості точок на кожному з базових перерізів }

 

const

XX:m2=(112.8,110.0,99.0,88.0,77.0,66.0,55.0,44.0,-11.0,-22.0,-33.0,

-44.0,-55.0,-66.0,-77.0,-88.0,-99.0,-110.0,-113.0,-114.0);

Kt:m3=(3,4,7,6,6,7,6,5,5,6,7,8,7,8,8,9,9,5,5,3);

YY:m1=(0.0,1.0,0.0, 0.0,2.6,8.6,0.0,

0.0,6.6,12.6,14.6,16.8,18.8,

0.0,0.0,12.6,16.2,18.4,22.2,

0.0,0.0,16.0,18.6,21.6,22.8,0.0,

0.0,18.6,20.4,22.4,22.8,23.0,0.0,

0.0,20.2,22.2,22.8,23.0,0.0,

0.0,20.6,22.8,23.0,0.0,

0.0,19.6,22.8,23.0,0.0,

0.0,17.8,22.0,22.8,23.0,0.0,

0.0,15.2,20.0,21.8,22.2,23.0,0.0,

0.0,11.6,18.0,20.4,22.2,22.8,23.0,0.0,

0.0,7.2,16.2,19.0,21.6,23.0,0.0,

0.0,6.2,12.0,16.8,19.2,21.6,22.2,0.0,

0.0,5.4,6.8,7.4,13.6,20.0,21.2,0.0,

0.0,3.6,4.8,5.2,6.6,13.6,18.2,19.8,0.0,

0.0,0.8,2.2,2.4,2.8,3.8,16.0,17.4,0.0,

0.0,3.0,12.6,14.2,0.0,

0.0,4.2,10.4,12.4,0.0,

0.0,1.0,0.0);

ZZ:m1=(15.2,21.6,21.6,

16.2,18.2,21.6,21.6,

0.0,0.0,2.04,5.1,15.3,21.6,21.6,

0.0,0.0,1.02,3.06,21.6,21.6,

0.0,0.0,1.53,4.08,21.6,21.6,

0.0,0.0,1.53,3.06,6.63,21.6,21.6,

0.0,0.0,1.02,2.04,21.6,21.6,

0.0,0.0,2.04,21.6,21.6,

0.0,0.0,2.04,21.6,21.6,

0.0,0.0,2.04,5.1,21.6,21.6,

0.0,0.0,2.55,3.06,7.14,21.6,21.6,

0.0,0.0,1.53,3.06,7.14,11.22,21.6,21.6,

0.0,0.0,2.04,4.08,9.18,21.6,21.6,

0.0,0.0,2.04,5.1,8.16,13.77,21.6,21.6,

0.0,0.0,1.02,2.55,6.12,11.28,21.6,21.6,

0.0,0.0,1.02,4.08,5.61,10.2,14.75,21.6,21.6,

0.0,0.0,1.02,4.08,7.14,8.67,15.3,21.6,21.6,

11.48,12.24,15.81,21.6,21.6,

13.77,14.28,16.32,21.6,21.6,

15.2,21.6,21.6);

 

де:

XX - масив абсцис базових перерізів(real);

Kt - масив кількості точок на кожному перерізі (integer);

ZZ - масив аплікат точок на базових перерізах(real);

YY - масив ординат точок на базових перерізах(real);


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.)