Треугольник ФЕРРЕ
'Программа . Язык -MapBasic MapInfo Идея автора с прибалтийской фамилией в гидрогеологическом справочнике
"за 1967 год. Хорошо. Программа устарела - работает плохо - пока принцип видно. От фонаря
'работает только при наличии системы MapInfo 5.
'Основная цель - построение совмещенных треугольников Ферре.
'***************************************************************************
Include "MENU.DEF"
Include "MAPBASIC.DEF"
Include "icons.def"
'***************************************************************************
'******************************************************************************

Global window_id As Integer
dim Querty1, objs1, gut as string
  If NumWindows() < 1 Then
    Note "При построении графиков должно быть открыто окно карты."
    Exit Sub
  End If

  window_id = FrontWindow()
   
  If WindowInfo(window_id, WIN_INFO_TYPE ) <> WIN_MAPPER Then
    Note "При построении графиков окно карты должно быть активно."
    Exit Sub
  End If
Querty1=SelectionInfo( SEL_INFO_SELNAME )
select * from Querty1 into Querty2
'objs1=Querty2.Name_obj
'Select * from vp_s_nkl where Name_obj=objs1 order by Data into Querty3

Create Table line02 (  nomer   Char( 30 ) )
Create Table line05 (  nomer   Char( 30 ) )
Create Table line1 (  nomer   Char( 30 ) )
Create Table line3 (  nomer   Char( 30 ) )
Create Table line10 (  nomer   Char( 30 ) )
Create Table lineb10 (  nomer   Char( 30 ) )
Create Map     For line02
Create Map     For line05
Create Map     For line1
Create Map     For line3
Create Map     For line10
Create Map     For lineb10
Dim i As Integer
Dim x1,y1,x2,y2, Suhoy As  float
Dim hco3_e, hco3_p, so4_e, so4_p, cl_e, cl_p As  float
Dim ca_e, ca_p, mg_e, mg_p, nak_e, nak_p As  float
   Fetch First From Querty2
do While Not EOT(Querty2)

hco3_e = Querty2.hco3/61.02
so4_e = Querty2.so4/48.03
cl_e = Querty2.cl/35.45

ca_e = Querty2.ca/20.04
mg_e = Querty2.mg/12.15
nak_e = Querty2.nak/22.99
hco3_p = hco3_e/(hco3_e+so4_e+cl_e)*100
so4_p = so4_e/(hco3_e+so4_e+cl_e)*100
cl_p = cl_e/(hco3_e+so4_e+cl_e)*100

ca_p = ca_e/(ca_e+mg_e+nak_e)*100
mg_p = mg_e/(ca_e+mg_e+nak_e)*100
nak_p = nak_e/(ca_e+mg_e+NaK_e)*100

x1 = (Mg_p)+ Ca_p*Cos(60* DEG_2_RAD)
y1 = Ca_p*Sin(60* DEG_2_RAD)
x2 = (SO4_p)+ HCO3_p*Cos(60* DEG_2_RAD)
y2 = HCO3_p*Sin(60* DEG_2_RAD)
gut = Querty2.ObjName
Suhoy = Querty2.Suhoy/1000

If   Suhoy <0.2  Then
     Insert Into line02 (Nomer, obj)
    Values (gut, CreateLine(x1 , y1, x2 , y2))

ElseIf   Suhoy >=0.2 and Suhoy<0.5
  Then   Insert Into line05 (Nomer, obj)
    Values (gut, CreateLine(x1 , y1, x2 , y2))
ElseIf   Suhoy >=0.5 and Suhoy<1
  Then   Insert Into line1 (Nomer, obj)
    Values (gut, CreateLine(x1 , y1, x2 , y2))
ElseIf   Suhoy >=1 and Suhoy<3
  Then   Insert Into line3 (Nomer, obj)
    Values (gut, CreateLine(x1 , y1, x2 , y2))
ElseIf   Suhoy >=3 and Suhoy<10
  Then   Insert Into line10 (Nomer, obj)
    Values (gut, CreateLine(x1 , y1, x2 , y2))
ElseIf   Suhoy>=10
  Then   Insert Into lineb10 (Nomer, obj)
    Values (gut, CreateLine(x1 , y1, x2 , y2))

End If

    Fetch Next From Querty2
loop
Map From line02
Add Map Layer line05
Add Map Layer line1
Add Map Layer line3
Add Map Layer line10
Add Map Layer lineb10

Set Map Layer 1 Global Line (1,59,16711680)
Set Map Layer 1 Display Global
set map redraw on

Set Map Layer 2 Global Line (1,59,16750640)
Set Map Layer 2 Display Global
set map redraw on

Set Map Layer 3 Global Line (1,59,16776960)
Set Map Layer 3 Display Global
set map redraw on

Set Map Layer 4 Global Line (1,59,65280)
Set Map Layer 4 Display Global
set map redraw on

Set Map Layer 5 Global Line (1,59,65535)
Set Map Layer 5 Display Global
set map redraw on

Set Map Layer 6 Global Line (1,59,255)
Set Map Layer 6 Display Global
set map redraw on
Open Table "dreis.TAB" Interactive
Add Map Auto Layer dreis
Set Map XY Units "mm" CoordSys NonEarth Units "mm"
'window_id = FrontWindow()
'Insert Into  dreis (Obj)
'  Values ( CreateText( window_id , 0 , -10 , "Na, Cl", 0,0,0) )

'Insert Into  dreis (Obj)
 ' Values ( CreateText( window_id , 80 , -10 , "Mg, SO4", 0,0,0) )

'Insert Into  dreis (Obj)
 ' Values ( CreateText( window_id , 40 , 90 , "Сa, HCO3", 0,0,0) )


Set Map Zoom Entire
set map redraw off
Set Map Layer 1 Label Auto On
set map redraw on
Сайт управляется системой uCoz