.


:




:

































 

 

 

 


Delphi




 

3.33. , . , Polusfera, F:\temp\Tmas.dat ( ). , ComboBox1. Botton1 ListBox1 , , .

, . , .

 

 

3.33.

 

Button1Click.

 

 

Procedure Tform6.Button1Click(Sender: Tobject);

Const M=50; N=50;

var T: array [1..M,1..N] of real;

Tmax, Tmin, DT, Tlin: real;

Nlin,I,j: integer;

F: File of real;

 

Procedure IZOLIN;

var l,b:integer; //

w,h:integer; //

I, j, lin, k, e: integer;

ri, rj: real;

flag: oolean;

Procedure Pixels_9(e,k:integer);// 33

var i1,j1:integer;

Begin

for i1:= -1 to 1 do

for j1:= -1 to 1 do

Form6.Canvas.Pixels[e+i1,k+j1]:=clBlack;

end;

Begin

 

l:=130; // 130

b:=Form6.ClientHeight-20; //Y

h:=Form6.ClientHeight-40; //

w:=Form6.ClientWidth-(l+20); //

if M>N then w:=round(w*N/M); //

if M<N then h:=round(h*M/N); //

With Form6.Canvas do

Begin

//

MoveTo (l, b-h); LineTo(l,b); LineTo(l+w,b);

LineTo(l+w,b-h); LineTo(l,b-h);

 

//

for lin:=1 to Nlin do

Begin

Tlin:=Tmin+(lin-1)*DT;

flag:=true;

//

For i:=1 to M-1 do

Begin k:=round(h/M*(M-i)+b-h); // . Y

For j:=1 to N-1 do

Begin

If (Tlin>=T[I,j]) and (T[I,j+1]>=Tlin) or (Tlin<=T[I,j]) and

(Tlin >= T[i,j+1])

then Begin //-

if abs(T[I,j+1]-T[I,j])<1E-6//

then rj:=j+1

else rj:=j+(Tlin-T[I,j])/(T[I,j+1]-T[I,j]);

e:=round(l+w/N*rj);//. X

Pixels_9(e,k) //

End

End

end;

//

For j:=1 to N-1 do

Begin e:=round(l+w/N*j); //. X

For i:=1 to M-1 do

Begin

If (Tlin>=T[I,j]) and (Tlin<=T[i+1,j]) or (Tlin<=T[I,j]) and

(Tlin>=T[i+1,j])

then Begin //y-

if abs(T[i+1,j]-T[I,j])<1E-6 then ri:=i+1

else ri:=i+(Tlin-T[I,j])/(T[i+1,j]-T[I,j]);

k:=round(h/M*(M-ri)+b-h); //. Y

//

If flag then begin TextOut(e,k,IntToStr(lin));

flag:=false end

else Pixels_9(e,k) //

End

End

End

end //

end // end with

end; //

 

Begin

AssignFile(F,F:\temp\Tmas.dat); Reset(F);

for I:= 1 to M do

for j:= 1 to N do Read(F,T[I,j]);//

 

// max min T

Tmax:=T[1,1]; Tmin:=T[1,1];

For i:=1 to M do

For j:=1 to N do

Begin

If T[I,j]>Tmax then Tmax:=T[I,j];

If T[I,j]<Tmin then Tmin:=T[I,j]

End;

// ComboBox1

Nlin:=StrToInt(ComboBox1.Items[ComboBox1.ItemIndex]);

DT:=(Tmax-Tmin)/(Nlin-1); //

// ListBox1

ListBox1.Items.Add(' ');

for I:= 1 to Nlin do

Begin

ListBox1.Items.Add(IntToStr(i)+:T=+FloatToStrF(Tmin+(i-1) *DT,ffGeneral,4,2))

end;

IZOLIN //

end;

 

. , . , .

 

1. . ( M×N), (.3.34)

2. Nlin. , , (Tmin) (Tmax) DT=(Tmax-Tmin)/(Nlin-1).

3. Tlin , . : . . , . , rj, : rj:=j+(Tlin-T[I,j])/(T[I,j+1]-T[I,j]). : j≤rj≤j+1. : ri:=i+(Tlin-T[I,j])/(T[i+1,j]-T[I,j]). i≤ri≤i+1.

4. (i,rj) (ri,j) (Canvas - ). , , e, k. 3×3 . e, k . Pixels_9. . flag.

: M N, , . .

1. ?

2. ?

3. ? ? ?

4. Delphi ?

5. :

- ?

- ?

- ?

- ?

- ?

 
 

 

 






:


: 2015-11-23; !; : 4513 |


:

:

.
==> ...

1467 - | 1394 -


© 2015-2024 lektsii.org - -

: 0.019 .