М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Tara8808
Tara8808
30.07.2022 21:48 •  Информатика

Qbasic. Составить программу движения двух спутников (Фобос и Деймос) вокруг Марса. (в графическом режиме, спутники и планету необходимо нарисовать схематично в виде окружностей)

👇
Открыть все ответы
Ответ:
KatherinePirs
KatherinePirs
30.07.2022
// PascalABC.NET 3.1, сборка 1218 от 12.04.2016
uses GraphABC;

procedure Sun(x, y: integer);
begin
  var c := 8;
 
  for var j := 1 to 100 do
  begin
    var r := 15 * c;
    var k := 0;
    if j mod 2 = 0 then k := 20;
    
    for var i := 0 to c do
    begin
      Brush.Color := RGB(230 - k, 230 - k, 0);
      Circle(x, y, r);
      k := k + 15;
      r := r - 15;
      sleep(100);
    end;
  end;
end;

procedure House(x, y: integer);
begin
  Brush.Color := clBrown;
  Pen.Color := clBurlyWood;
  var house_width := 300;
  var house_height := 300;
  var count := 10;
  var step := round(house_width / count);
 
  FillRectangle(x, y, x + house_width, y + house_height);
 
  var xx := x;
  for var i := 1 to count - 1 do
  begin
    xx := xx + step;
    Line(xx, y, xx, y + house_height);
  end;
 
  Brush.Color := clGray;
  FillRectangle(x + 100, y + 100, x + 200, y + 210);
  Brush.Color := clYellow;
  FillRectangle(x + 105, y + 105, x + 195, y + 150);
  Brush.Color := clRed;
  FillRectangle(x + 105, y + 155, x + 150, y + 205);
  Brush.Color := clBlue;
  FillRectangle(x + 155, y + 155, x + 195, y + 205);
 
  MoveTo(x + house_width div 2, y - 80);
  LineTo(x + house_width, y, Pen.Color);
  LineTo(x, y, Pen.Color);
  LineTo(x + house_width div 2, y - 80, Pen.Color);
  FlooDfill(x + house_width div 2, y - 10, clOlive);
 
  Brush.Color := clRed;
  Circle(x + house_width div 2, y - 35, 30);
end;

procedure Turtoise(x, y: integer);
begin
  Brush.Color := clGreen;
  Pen.Color := clGreen;
  FillRectangle(x + 5, y + 15, x - 20, y + 24);
  FillRectangle(x + 50, y, x + 30, y + 70);
  FillRectangle(x + 100, y, x + 120, y + 70);
  FillCircle(x + 170, y, 30);
 
  Brush.Color := clWhite;
  FillCircle(x + 180, y - 20, 10);
 
  Brush.Color := clBlack;
  FillCircle(x + 182, y - 18, 2);
  Brush.Color := clRed;
  FillRectangle(x + 180, y, x + 200, y + 4);
  Brush.Color := clBrown;
  FillEllipse(x, y - 10, x + 150, y + 50);
end;

begin
  Window.Init(0, 0, 1920, 1000, clBlue);
  Brush.Color := clLimeGreen;
  Rectangle(0, 580, 1920, 1018);
 
  House(700, 380);
  Turtoise(300, 600);
  Turtoise(900, 750);
  Sun(1200, 200);
end.
4,6(53 оценок)
Ответ:
viktoriyabochko
viktoriyabochko
30.07.2022
Поставьте номера вопросам!
1. Компьютерная графика
2. Не знаю) Что-нибудь для перфолент и перфокарт?
3. Деловая графика.
4. 3D графика, 3 d технология вообще
5. Разрешающая монитора
6. Пиксел, точка
7. Мониторы на лучевой трубке и жидкокристаллические
8. Если в изображении использовалось N цветов, тогда количество бит для сохранения 1 точки нужно N <= 2 в степени i. При этом i должно быть минимальным. То есть если в изображении 70 цветов, то ближайшие i это 6 и 7 (2 в 6 степени 64, 2 в 7ой 128), в данной ситуации i = 7 бит, потому что 6 бит не хватит закодировать 70 цветов (только 64)
9. 1.количество точек к= 1024*768 = 786432 точки, 256 цветов, значит вес одной точки = 8 бит = 1 байт, итого 1 кадр = 786432 * 1 байт, 2 кадра = 2* 786432 байта = 192 Кб
9. 2. точек не изменилось: 786432, одна точка = 24 бита, значит вес 1 точки увеличился в 3 раза, значит и размер всех 2 кадров увеличится в 3 раза 
4,5(24 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ