HOME ПРИМЕРЫ THANKS НОВИЧКАМ ДОКИ LINKS JavaScript Mail


 
В этот день много лет назад...
23 октября. В 1943 году (75 лет назад) - Подводная лодка "Звон" в своем пятом боевом походе обнаруживает японский конвой, состоящий из трех больших танкеров и двух транспортов. Охрану несет лишь один эсминец, который ходит кругами, обследуя район. Подводной лодке удается поднырнуть к самому конвою так, что она смешивается с кораблями японцев, и эсминец не может засечь ее радиолокатором. Почти в упор "Звон" дает залп пятью торпедами по танкерам, и поражает все три судна. Затем лодка собирается поразить транспорт, но он резко разворачивается и идет на таран. У лодки, зажатой между пылающими танкерами и транспортом, времени, чтобы уйти под воду, уже не остается. Нос транспорта нависает над "Звоном". Дальнейшее командир лодки капитан О`кейн описывает следующим образом: "Это было как в мелодраматическом боевике. "Звон" метнулся прямо внутрь циркуляции транспорта, и, спасая корму, я приказал положить руль лево на борт. Транспорт открыл огонь из пушек и пулеметов. Однако снаряды проносились над нашими головами, не задевая лодки. Положение было отчаянным. Тут я взглянул на корму и увидел, что, на наше счастье, транспорту придется продолжить поворот, чтобы избежать столкновения с грузовым судном, которое также шло на таран. Наскоро прицепившись, я выстрелил веером торпеды из кормовых аппаратов с углом растворения, перекрывавшим длину обеих целей. В этот же момент грузовое судно врезалось в правую раковину транспорта. Столкновение и четыре торпеды "Звона" решили судьбу грузового судна: оно затонуло почти мгновенно, уйдя под воду с большим дифферентом на нос, а транспорт застыл на месте, задрав корму под углом в тридцать градусов". Таким образом, за один бой лодке удалось уничтожить пять кораблей.
 
 

Turbo Pascal Documentation

Процедура SetWriteMode

Модуль Graph


     Функция: Устанавливает режим записи при вычерчивании линии.
     Описание: SetWriteMode(реж_записи: integer)
     Примечания: Определены следующие констанлы:

            const
              CopyPut  = 0;     { MOV }
              XORPut   = 1;     { XOR }

     Каждая константа соответствует двоичной операции  между
каждым  байтом  строки  и соответствующим байтом экрана. Для
константы CopyPut используется  инструкция  ассемблера  MOV.
При  этом вычерчиваемая линия "затирает" то, что было на эк-
ране. Для константы XORPut для комбинирования линии с  изоб-
ражением на экране используется инструкция XOR. Две последо-
вательные операции XOR приведут к стираних линии  и  восста-
новлению исходного изображения на экране.

           Замечание: Процедура SetWriteMode  влияет  только
      на  обращение  к следующим процедурам: DrowPoly, Line,
      LineRel, LineTo и Rectangle.

     Аналогичная процедура имеется в версии 2.0 Турбо-Си.
     Прочее: См. также процедуры PutImage и SetLinkStyle.
     Пример:

         uses Graph;
        var
          Gd, Gm : integer;
               i : integer;
          x1, y1, dx, dy : integer;
          FillInfo : FillSettingsType;
        begin
          DirectVideo := false; { "выключить" запись на экран }
          Randomize;
          Gd := Detect;
          InitGraph(Gd, Gm, '');
           if GraphResult <> grOk then
             Halt(1);
         { заполнить экран используемым по умолчанию образцом }
         GetFillSettings(FillInfo); { получить текущие параметры }
         SetFillStyle(WideDotFill, FillInfo.Color);
         Bar(0, 0, GetMaxX, GetMaxY);
         dx := GetMAxX div 4; { задать размерность прямоуголиника }
         dy := GetMaxY div 4;
         SetLineStyle(SolidLn, 0, ThickWidth);
         SetWriteMode(XORPut);  { режим XOR для прямоугольника }
         repeat
           x1 := Random(GetMaxX - dx);
           y1 := Random(GetMaxY - dy); { нарисовать его }
           Delay(0);   { короткая пауза }
           Rectangle(x1, y1, x1 + dx, y1 + dy) { стереть его }
         until KeyPressed;
         Readln;
         CloseGraph;
       end.




HOME