Как найти координаты точки в паскале

103 / 90 / 75

Регистрация: 04.11.2011

Сообщений: 1,818

1

Определить координаты точки

21.11.2014, 11:34. Показов 6756. Ответов 3


Студворк — интернет-сервис помощи студентам

Помогите с задачей пожалуйста. Нужно разработать программу, выделив процедуры. По идее сначало нужно напистаь свой модуль , а потом подключить его. Вот условие задачи: Если все заданные точки плоскости принадлежат первой четверти, определить координаты точки, наиболее удаленной от начала координат, иначе определить координаты точек, не попавших в первую четверть.



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

21.11.2014, 11:34

Ответы с готовыми решениями:

Вводятся координаты точки. Определить, попадает ли точка в заштрихованную область или нет
Собственно, задание в теме, пока что, я не понимаю, как это реализовать на этом языке, а на другом…

Даны два целых числа — координаты точки в декартовой системе координат. Определить, в какой четверти находится точка
Даны два целых числа — координаты точки в декартовой системе координат. Определить, в какой…

Даны два числа — координаты точки в декартовой системе координат. Определить, к какой оси X млм Y она ближе
Даны два числа — координаты точки в декартовой системе координат. Определить, к какой оси X млм Y…

Даны координаты точки (x,y). Определить принадлежность заданной точки заштрихованной области, включая ее границы
Ребята, помогите, пожалуйста, решить эти задачи. Желательно, ещё и объяснить,что именно найти….

3

Legolas

171 / 57 / 45

Регистрация: 21.06.2012

Сообщений: 263

21.11.2014, 12:49

2

Как оформляются модули я уже не помню, держите так, думаю сумеете переделать
количество точек — константа n
ввод координат точек, добавьте сами, я не знаю откуда они должны вводится — пользователем/рандомом/с файла

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
uses crt;
const
 n = 3;
type
 point= record x,y: real; end; //тип - точка
 tPoint = array [1..n] of point; 
var
 ArrayPoint: tPoint; //массив точек
 ResultPoint: point;
 
function Verify (var mas: tPoint): boolean; //проверка принадлежности первой четверти
var i: integer;
begin
 Verify:= true;
 for i:=low(mas) to high(mas) do
  if (mas[i].x<0) or (mas[i].y<0) then begin Verify:= false; exit; end;
end;
 
procedure FindFar (var mas: tPoint; var ResultPoint: point); // поиск самой дальней точки
var i: integer;
 r_max: point;
begin
 r_max:= mas[1];
 for i:=low(mas) to high(mas) do
  if sqrt(sqr(mas[i].x)+sqr(mas[i].y)) > sqrt(sqr(r_max.x)+sqr(r_max.y)) then r_max:= mas[i];
 ResultPoint:= r_max;
end;
 
procedure NotFirst (var mas: tPoint); //вывод точек не лежащих в первой четверти
var i: integer;
begin
 writeln ('NotFirst');
 writeln;
 for i:=low(mas) to high (mas) do
  if (mas[i].x<0) or (mas[i].y<0)
   then writeln ('x[',i,'] = ',mas[i].x:5:2,' y[',i,'] = ',mas[i].y:5:2);
end;
 
begin
 clrscr;
//ввод координат точек
 ArrayPoint[1].x:=1;
 ArrayPoint[1].y:=1;
 ArrayPoint[2].x:=2;
 ArrayPoint[2].y:=-2;
 ArrayPoint[3].x:=1;
 ArrayPoint[3].y:= 1;
 
 if Verify (ArrayPoint)
   then
  begin FindFar(ArrayPoint, ResultPoint);
    writeln ('Max far');
    writeln;
    writeln ('Max far = x = ',ResultPoint.x:0:2,' y = ',ResultPoint.y:0:2)
  end
   else NotFirst (ArrayPoint);
 readln;
end.



0



Xo6ut

103 / 90 / 75

Регистрация: 04.11.2011

Сообщений: 1,818

21.11.2014, 16:54

 [ТС]

3

Не получается разделить на модуль и основную программу

Добавлено через 1 час 51 минуту
И ввод точек тоже по идее нужно сделать через процедуру.

Добавлено через 2 минуты
Помогите только с разделением.

Добавлено через 21 минуту
Попробовал сделать так

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
unit my;
interface
const
 n = 3;
type
 point= record x,y: real; end; //тип - точка
 tPoint = array [1..n] of point; 
 var
 ArrayPoint: tPoint; //массив точек
 ResultPoint: point;
 procedure print(x:integer);
 function Verify (var mas: tPoint): boolean;
 procedure FindFar (var mas: tPoint; var ResultPoint: point);
 procedure NotFirst (var mas: tPoint);
 implementation
  procedure print(x:integer);
 begin
 writeln('vvedite koordinati ',n,' to4ek');
writeln('1aya to4ka');
readln(ArrayPoint[1].x, ArrayPoint[1].y);
writeln('2aya to4ka');
readln(ArrayPoint[2].x, ArrayPoint[2].y);
writeln('3aya to4ka');
readln(ArrayPoint[3].x, ArrayPoint[3].y);
end;
 
 
function Verify (var mas: tPoint): boolean; //проверка принадлежности первой четверти
var i: integer;
begin
 Verify:= true;
 for i:=low(mas) to high(mas) do
  if (mas[i].x<0) or (mas[i].y<0) then begin Verify:= false; exit; end;
end;
 
procedure FindFar (var mas: tPoint; var ResultPoint: point); // поиск самой дальней точки
var i: integer;
 r_max: point;
begin
 r_max:= mas[1];
 for i:=low(mas) to high(mas) do
  if sqrt(sqr(mas[i].x)+sqr(mas[i].y)) > sqrt(sqr(r_max.x)+sqr(r_max.y)) then r_max:= mas[i];
 ResultPoint:= r_max;
end;
 
procedure NotFirst (var mas: tPoint); //вывод точек не лежащих в первой четверти
var i: integer;
begin
 writeln ('NotFirst');
 writeln;
 for i:=low(mas) to high (mas) do
  if (mas[i].x<0) or (mas[i].y<0)
   then writeln ('x[',i,'] = ',mas[i].x:5:2,' y[',i,'] = ',mas[i].y:5:2);
end;
end.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses my, crt;
const
 n = 3;
type
 point= record x,y: real; end; //тип - точка
 tPoint = array [1..n] of point; 
var
 ArrayPoint: tPoint; //массив точек
 ResultPoint: point;
begin
 clrscr;
 
if Verify (ArrayPoint)
   then
  begin FindFar(ArrayPoint, ResultPoint);
    writeln ('Max far');
    writeln;
    writeln ('Max far = x = ',ResultPoint.x:0:2,' y = ',ResultPoint.y:0:2)
  end
   else NotFirst (ArrayPoint);
 readln;
end.

Пишет: неправильный тип подрограммы



0



Puporev

Почетный модератор

64287 / 47586 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

21.11.2014, 17:02

4

Цитата
Сообщение от Xo6ut
Посмотреть сообщение

Помогите только с разделением.

Текст модуля

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
unit modul;
interface
const n = 3;
type
 point= record x,y: real; end; //тип - точка
 tPoint = array [1..n] of point;
function Verify (var mas: tPoint): boolean;
procedure FindFar (var mas: tPoint; var ResultPoint: point);
procedure NotFirst (var mas: tPoint);
 
implementation
function Verify (var mas: tPoint): boolean; //проверка принадлежности первой четверти
var i: integer;
begin
 Verify:= true;
 for i:=1 to n do
  if (mas[i].x<0) or (mas[i].y<0) then begin Verify:= false; exit; end;
end;
 
procedure FindFar (var mas: tPoint; var ResultPoint: point); // поиск самой дальней точки
var i: integer;
 r_max: point;
begin
 r_max:= mas[1];
 for i:=1 to n do
  if sqrt(sqr(mas[i].x)+sqr(mas[i].y)) > sqrt(sqr(r_max.x)+sqr(r_max.y)) then r_max:= mas[i];
 ResultPoint:= r_max;
end;
 
procedure NotFirst (var mas: tPoint); //вывод точек не лежащих в первой четверти
var i: integer;
begin
 writeln ('NotFirst');
 writeln;
 for i:=1 to n do
  if (mas[i].x<0) or (mas[i].y<0)
   then writeln ('x[',i,'] = ',mas[i].x:5:2,' y[',i,'] = ',mas[i].y:5:2);
end;
end.

текст программы

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses modul,crt;
var
 ArrayPoint: tPoint; //массив точек
 ResultPoint: point;
begin
//ввод координат точек
 ArrayPoint[1].x:=1;
 ArrayPoint[1].y:=1;
 ArrayPoint[2].x:=2;
 ArrayPoint[2].y:=-2;
 ArrayPoint[3].x:=1;
 ArrayPoint[3].y:= 1;
 writeln(' ');
 if Verify (ArrayPoint) then
  begin
   FindFar(ArrayPoint, ResultPoint);
   writeln ('Max far');
   writeln;
   writeln ('Max far = x = ',ResultPoint.x:0:2,' y = ',ResultPoint.y:0:2)
  end
else NotFirst (ArrayPoint);
end.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

21.11.2014, 17:02

Помогаю со студенческими работами здесь

Если все заданные точки плоскости принадлежат первому квадранту, определить координаты точки, наиболее удаленной от начала координат
Если все заданные точки плоскости принадлежат первому квадранту, определить координаты точки,…

Даны координаты вершин треугольника и координаты точки внутри него. Найти расстояние от данной точки до ближайшей сторон
Задание: Даны координаты вершин треугольника и координаты точки внутри него. Найти расстояние от…

Даны координаты вершин треугольника и координаты некоторой точки внутри него. Найти расстояние от данной точки до ближайшей стороны треугольника
Даны координаты вершин треугольника и координаты некоторой точки внутри него. Найти расстояние от…

Определить координаты точки, наиболее удаленной от начала координат
Если все заданные точки плоскости принадлежат первой четверти, определить координаты точки,…

Ввести координаты точки, определить, лежит ли она на окружности радиуса R
На плоскости расположена окружность радиуса R с цен¬тром в начале координат. Ввести заданные…

Даны координаты точки А(х1,у1). Определить, принадлежит ли эта точка отрезку [a,b].
Даны координаты точки А(х1,у1). Определить, принадлежит ли эта точка отрезку .
Заранее благодарен!

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

4

Предыдущий раздел:

Следующий раздел:

13.3. Экранные координаты. Точка заданного цвета

При запуске программы с подключенным модулем GraphABC создается так называемое графическое окно — обычное для ОС Windows окно, в пределах которого можно рисовать. Площадь окна можно рассматривать как двумерный массив светящихся точек (пикселей). Координаты точек принимают целочисленные значения и отсчитываются от левого верхнего угла окна (рис. 1). Ось ординат направлена вниз. Соответственно, сам левый верхний угол имеет координаты (0,0). Координаты соседних с ним точек, очевидно, будут (0, 1), (1, 0) и (1, 1).

Экранная система координат

Рис. 1. Экранная система координат.

Размеры окна по умолчанию составляют 640 на 480 точек. Однако пользователь может менять их произвольным образом обычным для ОС Windows способом (хватать мышью за угол, распахивать на весь экран и т.д.) Узнать текущий размер окна можно с помощью функций WindowWidth и WindowHeight. Например, инструкция

  W:=WindowWidth;

запишет текущую ширину в переменную W.

Изначально все пиксели окна имеют белый цвет. Однако каждому можно назначить произвольный цвет, заданный в так называемой системе RGB (расшифровывается Red Green Blue). В этой системе цвет задается тремя целыми числами в диапазоне от 0 до 255, задающими интенсивность красной, зеленой и синей составляющей (как известно, любой цвет можно получить их смешением). Цветовые значения имеют специальный тип Color, их можно получить с помощью функции RGB, имеющей заголовок:

  function RGB(r, g, b: byte): Color;

Также цвет можно задать с помощью одной из определенных в модуле GraphABC констант. Например, clRed — красный цвет, clYellow — желтый и т.д. Полный список смотрите в справочной системе среды PascalABC.

Указать любой точке, какого она должна быть цвета можно с помощью процедуры PutPixel. Ее заголовок:

  procedure PutPixel(x, y: integer; c: Color);

Здесь x, y – координаты точки, c – цвет точки.

В принципе, этой процедурой можно было бы и ограничится. Раз для любой точки окна можно указать любой цвет, значит можно нарисовать все, что угодно. Однако, все же полезно иметь в своем распоряжении несколько дополнительных команд для рисования простейших объектов.

Отличие среды Borland Pascal

Ширина и высота экрана в пикселях здесь фиксированна (640 x 480).

По умолчанию все пикселы имеют черный цвет (не светятся), но каждому можно назначить один из 16-ти цветов. Каждому цвету, соответствует целочисленная константа, описанная в модуле Graph. Список констант и их значения приведены в таблице:

Цвет Константа, описанная в модуле Graph Значение константы
Черный Black 0
Синий Blue 1
Зеленый Green 2
Голубой Cyan 3
Красный Red 4
Фиолетовый Magenta 5
Коричневый Brown 6
Светло-серый LightGray 7
Темно-серый DarkGray 8
Ярко-синий LightBlue 9
Ярко-зеленый LightGreen 10
Ярко-голубой LightCyan 11
Ярко-красный LightRed 12
Ярко-фиолетловый LightMagenta 13
Желтый Yellow 14
Белый White 15

Произвольные цвета, не входящие в эту палитру, задать невозможно.

Назначение цвета производится с помощью той же процедуры PutPixel. Ее заголовок:

  procedure PutPixel(X, Y: integer; Color: Word);

Здесь X, Y – координаты точки, Color – цвет точки.

Следующий раздел:

Предыдущий раздел:

На занятии происходит знакомство с логическим типом Boolean в Паскале. Рассматривается алгоритм того, как находится минимальное и максимальное число в Паскале

Содержание:

  • Графика в Паскале
    • Управление цветом
    • Точки, отрезки и ломаные
    • Рисование фигур
    • Функция random для использования окраски
  • Анимация в Паскале

Графика в Паскале

Для работы с графикой в pascal abc используется модуль GraphABC. Для его подключения используется следующий код:

uses GraphABC;
begin
...
end.

Система координат в Паскале соответствует экранной системе координат и выглядит следующим образом:

Система координат в паскале

Система координат

Управление цветом

Для того, чтобы использовать цвет, необходимо применить этот цвет к инструменту перо:


  • SetPenColor(color) — устанавливает цвет пера, задаваемый параметром color;
  • setBrushColor(color) — устанавливает цвет кисти, задаваемый параметром color;
  • либо для палитры RGB: SetPenColor(rgb(0-255, 0-255, 0-255));
  • или использовать для заливки:

  • FloodFill(x,y,color) — заливает область одного цвета цветом color, начиная с точки (x,y).

После чего можно использовать процедуры для рисования геометрических фигур.

Цвета в pascal abc:

clBlack – черный
clPurple – фиолетовый
clWhite – белый
clMaroon – темно-красный
clRed – красный
clNavy – темно-синий
clGreen – зеленый
clBrown – коричневый
clBlue – синий
clSkyBlue – голубой
clYellow – желтый
clCream – кремовый
clAqua – бирюзовый
clOlive – оливковый
clFuchsia – сиреневый
clTeal – сине-зеленый
clGray – темно-серый
clLime – ярко-зеленый
clMoneyGreen – цвет зеленых денег
clLtGray – светло-серый
clDkGray – темно-серый
clMedGray – серый
clSilver – серебряный

Точки, отрезки и ломаные

Для отображения точки в паскале используется процедура:

  • SetPixel(x,y,color) — Закрашивает один пиксел с координатами (x,y) цветом color
  • точки в паскале

    uses GraphABC;
    begin
      SetPixel(300,200,clred);
    end.

    Для рисования линии используется:

  • Line(x1,y1,x2,y2) — рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2)
  • паскаль линия

    uses GraphABC;
    begin
      SetPenColor(clgreen);
      line(100,50,500,250);
    end.

    Ломаные можно рисовать с помощью процедур MoveTo (x1, y1) и LineTo (x2, y2).
    Процедуры работают в паре: MoveTo передвигает курсор в определенную точку, а процедура LineTo рисует линию с этой точки до точки, определенной параметром данной процедуры.
    ломаные в паскале

    uses GraphABC;
    begin
    ...
    SetPenColor(clblue);
    MoveTo (x1, y1);
    LineTo (x2, y2);
    LineTo (x3, y3);
    LineTo (x4, y4);
    LineTo (x5, y5);
    end.

    Задание 0: При помощи операторов SetPenColor(), LineTo (x2, y2) и MoveTo (x1, y1) нарисовать квадрат и равносторонний треугольник.

    [Название файла: L4_2task0.pas]

    Для установки размеров графического окна используется процедура

  • SetWindowSize(ширина, высота)
  • или, например:

    SetWindowWidth(600);
    SetWindowHeight(400);

    Рисование фигур

    Прямоугольник в Паскале рисуется:

  • Rectangle(x1,y1,x2,y2) — рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2).
  • прямоугольник в паскале

    uses GraphABC;
    begin
      Rectangle(50,50,200,200);
    end.

    Фигуры с заливкой:

    Фигуры с заливкой

    uses GraphABC;
    begin
      Rectangle(50,50,200,200);
      FloodFill(100,100,clBlue);
    end.

    Треугольник рисуется процедурами:

    Line(x1,y1,x2,y2);
    LineTo(x,y);

    треугольник в паскале

    uses GraphABC;
    begin
      setpenwidth(20);
      setpencolor(clred);
      moveTo(300,100);
      lineTo(500,300);
      lineto(100,300);
      lineto(300,100);
      floodfill(300,200,clgreen);
    end.

    Окружность можно нарисовать с помощью процедуры:

  • Circle(x,y,r) — рисует окружность с центром в точке (x,y) и радиусом r.
  • круг в паскале

    uses GraphABC;
    begin
       Circle(500,200,100);
       FloodFill(500,200,clred);
    end.

    Дуга окружности

  • Arc(x,y,r,a1,a2) — Рисует дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки).
  • Дуга окружности

    1
    2
    3
    4
    5
    
    uses GraphABC;
    Begin
    SetPenWidth(10);
    Arc(300,250,150,45,135);
    end.

    Задание 1: «Лягушка»
    задание по теме графика в паскале

    [Название файла: L4_2task1.pas]

    Задание 2: «Корона»
    задание по теме графика в pascal

    [Название файла: L4_2task2.pas]

    Функция random для использования окраски

  • SetPenColor(rgb(random(256), random(256), random(256))); — выбирает случайное число из 256-цветной палитры для красного, зеленого и синего.
  • Задание 3: Нарисовать горизонтальный ряд окружностей радиусом 10 на расстоянии 100 от верхнего края экрана и с такими горизонтальными координатами 50, 80, 110, 140, … , 290.

    * раскрасить круги случайным цветом

    [Название файла: L4_2task3.pas]

    Задание 4: «Круги на воде».
    Нарисуйте пару десятков концентрических окружностей, то есть окружностей разного радиуса, но имеющих общий центр.

    [Название файла: L4_2task4.pas]

    Задание 5:
    Воспроизвести изображение при помощи программы:
    графика паскаль abc.net

    [Название файла: L4_2task5.pas]

    Штриховка

    Нарисовать штриховку на Паскале можно, используя процедуры рисования прямоугольника и линии:
    алгоритм штриховки на паскале

    Программа будет выглядеть следующим образом:

    1_1

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    uses graphABC;
    var i, x1, x2, y1, y2, N: integer;
       h, x: real;
    begin   
      x1 := 100; y1 := 100;
      x2 := 300; y2 := 200;
      N := 10;
      Rectangle (x1, y1, x2, y2);
      h := (x2 - x1) / (N + 1);
      x := x1 + h;
      for i:=1 to N do begin
        Line(round(x), y1, round(x), y2);
        x := x + h;
      end;
    end.

    Задание 6:
    Нарисуйте шахматную доску.

    [Название файла: L4_2task6.pas]

    Анимация в Паскале

    Анимация в программировании заключается в том, что сначала рисуется фигура цветным инструментом, затем с тем же координатами рисуется та же фигура белым цветом. После чего происходит сдвиг фигуры и действия повторяются.

    Пример: Воспроизвести движение круга по горизонтали.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    uses GraphABC;
    var x:integer;
    begin
      x:=40;
    	repeat 
    		SetPenColor(clWhite);
    		Circle(x,100,10);	{Рисуем белую окружность}
    		SetPenColor(clBlack);
    		Circle(x,100,10);	{Рисуем черную окружность}
    		x:=x+1				{Перемещаемся немного направо}
    	until x>600;
    end.

    Задание 7: Выполнить анимацию движения квадрата по следующей траектории:

    [Название файла: L4_2task7.pas]

    Процедуру SetViewPort  удобно использовать для построения системы координат на экране. Эту систему координат можно в дальнейшем использовать для построения графика функции.

     Построение системы координат с помощью процедуры SetViewPort.


    
    Program Graphika26;
    Uses Graph;
    Procedure Graphinterface;
    Var  gd, gm, error:Integer;
    s:String;
    Begin
    gd:=detect;
    s:='';
    Initgraph(gd,gm,s);
    error:=GraphResult;
    if error<>GrOk then
    begin
    writeln(GraphErrorMsg(Error));
    Halt(error)
    end
    end;
    begin
    Graphinterface;
    setviewport(getmaxx div 2, getmaxy div 2, getmaxx, getmaxy,clipoff);
    setcolor(5);
    setlinestyle(0,0,3);
    line(-300,0,300,0);
    line(0,-300,0,300);
    line(300,0,270,-10);
    line(300,0,270,10);
    line(0,-300,-10,-270);
    line(0,-300,10,-270);
    readln;
    closegraph
    end.
    
    
    
    

    В строке №19 записываем процедуру SetViewPort, которая строит на экране невидимое окно. Координаты левого верхнего угла этого окна совпадают с серединой экрана (getmaxx div 2, getmaxy div 2). Координаты правого нижнего угла окна совпадают с правым нижним углом всего экрана. На рис. снизу представлено расположение окна (ABCD), построенного с помощью процедуры SetViewPort. Левый верхний угол окна (точка B) имеет координаты (getmaxx div 2, getmaxy div 2) и совпадает с серединой экрана. Правый нижний угол окна имеет координаты (getmaxx, getmaxy) и совпадает с правым нижним углом экрана.

    Procedura SetViewPort sistemma koordinat

    5-й параметр процедуры SetViewPort имеет значение ClipOff, т.е. элементы изображений, выходящие за пределы окна, не будут отсекаться.

    Строка №20 и №21. Устанавливаем цвет, тип и толщину линий.

    Строка №22. Рисуем линию. Так как начало координат теперь находится в левом верхнем углу окна (в точке B), нам необходимо использовать отрицательные координаты при построении изображений, находящихся левее либо выше окна ABCD. На рис. снизу показаны линии, построенные с помощью процедуры Line.

    Procedura SetViewPort sistemma koordinat.

    Линия EF построена с помощью процедуры Line в строке №22.
    Линия GH построена с помощью процедуры Line в строке №23.
    Так как точка B имеет координаты (0,0), точка E будет иметь координаты (-300,0), точка F – (300,0), точка G – (0,-300), точка H – (300,0). Таким образом, на данном этапе необходимо запомнить, что изображение, находящееся левее, либо выше окна, построенного с помощью процедуры SetViewPort, должно иметь отрицательные координаты.

    Строка №24-№27. Строим стрелочки, указывающие направление осей. На рис. снизу линия FJ построена с помощью процедуры Line в строке №24. Точка F имеет координаты (300,0), точка J – (270,-10).

    Procedura SetViewPort sistemma koordinat..

    Procedura SetViewPort sistemma koordinat...

    Procedura SetViewPort sistemma koordinat....


    Предыдущая статья : Процедура SetViewPort.

    Оглавление : Уроки Паскаль. Графика.

    Следующая статья : Построение системы координат (продолжение).


    Формулировка задачи:

    Написать программу для нахождения координат точки С.
    Дано:
    точка В принадлежит отрезку АС
    координаты точек:
    А(x0,y0,z0)
    В(x1,y1,z1)
    найти С(x,y,z)
    если ВС=k;

    Код к задаче: «Найти координаты точки»

    textual

      x := x1 + (x1 - x0) / abs(x1 - x0) * k;

    Полезно ли:

    9   голосов , оценка 3.444 из 5

    Понравилась статья? Поделить с друзьями:
  • Как найти уровень темпа роста
  • Как найти фазана зимой
  • Как найти карты таро в фасмофобии
  • Как найти панель вкладок в галерее
  • Как найти площадь поверхности четырех угольной пирамиды