Математический алгоритм
Загрузить исходник

 

-------------Алгоритм построения пучка прямых

 

 

global Boot,a, n1,t0,t

 

 

--global L21,L22,L23,L24,L25,NNx2,NNy2

 

 

 

on beginsprite me

 

  my = sprite(me.spriteNum).member

 

  my.resetWorld()

 

  Boot =0

 

  a=0

 

  t0=0

  t =0

  n1 =0

  ---------------

 

 

 

  my.newTexture("backdrop", #fromCastmember, member("sky"))

 

  my.camera(1).insertBackdrop(1,my.texture("backdrop"), point(0,0), 0)

  ------------------------------------------------------------------------

  set the url of member "Trousers"="Trousers.swa"

  ------------------------------------------------------------------------

  ----------------------------------------------------------------

  ----------------------------------------------------------------

  ---1 шаг

  --Устанавливаем систему отсчета

 

  --put member("my").model("Sphere01").transform.position

  ---- vector( 0.0000, 0.0000, 0.0000 )

  member("my").model("Sphere01"). transform.identity()

  ----------------------------------------------------------------

  ---2 шаг 2.Устанавливаем начальные условия

  -- Задаем(устанавливаем) положение начальной точки относительно выбронной системы отсчета.

  --Определяем числовой отрезок {40<=x<=100}

  member("my").model("Sphere01").transform.translate(100,100,0)

  --put member("my").model("Sphere01").transform.position.x

  -- 40.0000

  ----------------------------------------------------------------

  -- 1.Шаг

  --создания исходных данных

 

  myCicl

 

  ----------------------------------------------------------------

  ----------------------------------------------------------------

end

 

 

 

on exitFrame me

 

 

  if (a=1) then

    --музыка

    myButton

   

    --myobrabotka

    --  2.Шаг устанавливаем в заданную точку(узел) SphereS

    ---------------------------------------

    myobrabotka1

    ---------------------------------------

   

    -- myobrabotka5

   

    -- myobrabotkav1

    --   myobrabotkav2

   

    --myobrabotkaPos

    myobrabotkaPos1

   

    myobrabotkaPos2

   

    myobrabotkaPos3

   

    ---------------------------------------

    Round

    ---------------------------------------

    --Шаг за шагом

   

   

   

   

   

  end if

 

 

 

 

 

  go the frame

 

 

 

end

 

 

-- создания обработки данных

 

--Button

on  myButton

  if  Boot=0 then

   

    --set the url of member "Trousers"="Trousers.swa"

    play (member "Trousers")

   

    Boot=1

  end if

 

end  --myButton

----

 

 

on  Round

 

 

 

 

 

 

  member("my").model("Sphere01").rotate(5,5,5)

end  -- Round

 

 

 

 

--создания исходных данных

 

on myCicl

  --1.шаг

  --Создаем некоторое количество элементов

  --Количество шаров n-целая часть

 

  repeat with N = 1 to 30

   

    S777 = string(N)

   

    member("my").model("Sphere01").clone("Sphere"&S777)

   

  end repeat

 

end

 

 

 

 

 

 

 

--2.шаг

--Перемещаем созданные элементы заданную координату

--устанавливаем в заданную точку(узел) SphereS

 

--

 

on myobrabotka1

 

  if  member("my").model("Sphere"&30).transform.position <=vector( 179.0664, 112.0316, 0.0000 )   then

   

    -- if  member("my").model("Sphere"&30).transform.position <=vector( 143.2379  ,167.3089  , 0.0000 )   then

   

    --if  member("my").model("Sphere"&30).transform.position <=vector( 184.1361   ,154.0474   , 0.0000 )   then

   

    --if  member("my").model("Sphere"&30).transform.position <= vector( 169.1622, 110.7976, 0.0000 )  then

   

    --  if  member("my").model("Sphere"&30).transform.position <=vector(112.34, 20.95, 0.0000 )   then

    --  if  member("my").model("Sphere"&5).transform.position <= vector( 169.0425, 120.4236, 0.0000 )  then

   

    --if  member("my").model("Sphere"&5).transform.position >= vector( 30.0, 127.7988, 0.0000 )  then

    -- vector( 169.0425, 120.4236, 0.0000 )

   

    repeat with N = 1 to 30

     

     

     

      -- if  member("my").model("Sphere"&N).transform.position <= vector(100+200*cos(N),100+200*sin(N) , 0.0000 ) then

      ---------------------для окружности-------------------------------------------------------------

     -- member("my").model("Sphere"&N).translate(-2*sin(N),2*cos(N),0,#world)

     

      ----------------------------------------------------------------------------------

     

      ---------------------для эллипса-------------------------------------------------------------

      member("my").model("Sphere"&N).translate(-2*2*sin(N),2*cos(N),0,#world)

     

      ----------------------------------------------------------------------------------

      --  end if

     

    end repeat

  end if

  --3.ш

  -- Выравнивания элементов

 

end --myobrabotka1

--vector( 175.0903, 111.7231, 0.0000 )

---------------------------------------------------------------------------------------

--Напесать уравнение выравнения

--member("my").model("Sphere"&5).transform.position.x=x0+R*cos(N)

--member("my").model("Sphere"&5).transform.position.y=y0+R*sin(N)

---------------------------------------------------------------------------------------

 

-- vector( 181.0185, 112.6486, 0.0000 )  =  put member("my").model("Sphere"&30).transform.position

-- vector( 154.4181, 38.6592, 0.0000 )

-- vector( 77.7858, 21.0664, 0.0000 )

-- vector( 21.5772, 76.0448, 0.0000 )

-- vector( 37.4702, 153.0474, 0.0000 )

-- vector( 110.8528, 181.2787, 0.0000 )

-- vector( 174.2574, 134.7827, 0.0000 )

-- vector( 169.3902, 56.3077, 0.0000 )

-- vector( 169.3902, 56.3077, 0.0000 )

-- vector( 100.7257, 18.0032, 0.0000 )

-- vector( 31.3943, 55.0862, 0.0000 )

-- vector( 25.1385, 133.4626, 0.0000 )

-- vector( 87.7102, 181.0736, 0.0000 )

-- vector( 161.5808, 154.1460, 0.0000 )

-- vector( 178.8345, 77.4367, 0.0000 )

-- vector( 123.6080, 21.4719, 0.0000 )

-- vector( 46.6764, 37.7055, 0.0000 )

-- vector( 18.7701, 111.2125, 0.0000 )

-- vector( 65.5464, 174.4107, 0.0000 )

-- vector( 143.9990, 169.1961, 0.0000 )

-- vector( 144.6098, 31.1961, 0.0000 )

-- vector( 66.2064, 25.2873, 0.0000 )

-- vector( 18.8727, 88.0690, 0.0000 )

-- vector( 46.1271, 161.8198, 0.0000 )

-- vector( 122.9120, 178.7338, 0.0000 )

-- vector( 178.6317, 123.2602, 0.0000 )

-- vector( 162.0579, 46.4011, 0.0000 )

-- vector( 88.4281, 18.8206, 0.0000 )

-- vector( 25.4376, 65.8761, 0.0000 )

-- vector( 30.9993, 144.3047, 0.0000 ) = put member("my").model("Sphere"&1).transform.position

 

---------------------------------------Выравнивания (в данным случии не обезаьтельно)------------------------------------------------------

on myobrabotkaPos1

 

 

 

 

 

 

 

 

 

 

end --myobrabotkaPos1

 

-----------------------------------------------------------------------------------------------------

 

 

---------------Клонирование----------------------------------------------------------------------

on myobrabotkaPos2

  --  if member("my").model("Sphere"&30).transform.position  =  vector( 181.0185, 112.6486, 0.0000 )    then

 

  -----------------Для окружности----------------------------------------------------------------------

  -- if member("my").model("Sphere"&30).transform.position  =  vector( 181.0185, 112.6486, 0.0000 )  AND (member("my").model.count <= 30*10)   then

  ----------------------------------------------------------------------

  -----------------Для эллипса----------------------------------------------------------------------

  if member("my").model("Sphere"&30).transform.position  = vector( 182.9947, 106.4785, 0.0000 )   AND (member("my").model.count <= 30*10)   then

    ----------------------------------------------------------------------

    repeat with r1 = 1 to 30

      S777 = string(r1)

     

     

      repeat with r2 = 1 to 10

       

        S555 = string(r2)

       

        member("my").model("Sphere"&S777).clone("Sph3ere"&S777&S555)

       

        

        --put 1

       

      end repeat

     

    end repeat

   

   

  end if

 

end --myobrabotkaPos2

-----------------------------------------------------------------------------------------------------

 

 

 

---------------------------Перемещаем--------------------------------------------------------------------------

on myobrabotkaPos3

  x0 = 0

 

  R=8

 

 

 

  if        member("my").model.count  >=  30*10    then

   

    repeat with r1 = 1 to 30

     

      S777 = string(r1)

     

     

      repeat with r2 = 1 to 10

       

        S555 = string(r2)

       

       

           if  member("my").model("Sph3ere"&S777&S555) .transform.position.z <= (x0 +2*1*R*r2)-2 then

 

          member("my").model("Sph3ere"&S777&S555).translate(0,0,4,#world)

 

 

         

         

         

         

        end if

       

       

       

      end repeat 

      end repeat

 

     

end if

 

end --myobrabotkaPos2

-----------------------------------------------------------------------------------------------------

 

 

on myobrabotkaPos

  n5 = n5+1

  put n5

  if member("my").model("Sphere"&30).transform.position  >= vector( 179.0425, 112.3401, 0.0000 ) AND  n5=1 then

    -- put 1

    s1=300 

    put s1

    n5=10

  end if

end --myobrabotkaPos

 

 

 

 

 

 

 

 

on myobrabotkav1

  if  member("my").model("Sphere"&30).transform.position >=vector( 177.0664, 112.0316, 0.0000 )  then

    repeat with N = 1 to 30

      member("my").model("Sphere"&N).transform.position.x=100+1*cos(N)

      member("my").model("Sphere"&N).transform.position.y=100+1*sin(N)

    end repeat

  end if

end --myobrabotkav1

 

 

 

on myobrabotkav2

 

  if  member("my").model("Sphere"&10).transform.position.x =100+60*cos(10) AND  member("my").model("Sphere"&10).transform.position.y=100+60*sin(10) then

     member("my").model("Sphere"&10).translate(0,0,4,#world)

    put 2

   

  end if

end --myobrabotkav2

 

 

 

 

 

 

 

 

 

 

 

------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------

 

 

Назад

 

Hosted by uCoz