Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию [pdf]
.pdf876. Даны натуральные числа xc , yc , r , х, у. Построить окружность с центром в точке (xc , уc) и радиусом r, а также отрезок с координатами концов (xc , уc) и (х, у). Отметить точку пересечения отрезка и окружности.
Воспользоваться тем, что прямая, проходящая через точки (x1, y1) и (x2, y2) может быть описана параметрическими уравнениями х= x1
+ et, y= y1+ f t, где
e = (x2 - x1)/d, f = (y2 |
- y1)/d, d = (x |
2 |
− x )2 |
+ ( y |
2 |
− y )2 . |
|
|
1 |
|
1 |
Такой способ задания прямой отличается от указанного в задаче 864 тем, что при t = 1 мы получаем не второй конец отрезка (x2, y2), как в задаче 864, а точку, отстоящую от конца (x1, y1) на единичное расстояние. Из этого следует, что координаты точки пересечения отрезка с окружностью могут быть вычислены подстановкой в данные параметрические уравнения значения t = r, где r - радиус окружности.
877. Даны натуральные числа xc , yc , r , х, у. Построить окружность с центром в точке (xc , уc) и радиусом r, а также определить координаты хp, yp точки пересечения с окружностью невидимой прямой, проходящей через точки (xc , уc) и (х, у). Кроме того, построить отрезок с координатами концов:
а) (xc , уc) и (xp , уp); б) (x, у) и (xp , уp).
Отметить точку пересечения отрезка и окружности.
878. Даны натуральные числа x1, y1, x2, y2, действительное
(0 < < 1) . Построить отрезок с координатами концов (x1, y1), (x2, y2),
и восстановить перпендикуляр к отрезку из точки (x3, y3), делящей его в отношении /(1− ) .
Воспользоваться тем, что прямая, перпендикулярная отрезку с концами (x1, y1), (x2, y2) и проходящая через точку (x3, y3), описывается
параметрическими уравнениями
x = x3 - ft, y = y3 + et или x = x3 + ft, y = y3 - et, где e = (x2 - x1)/d, f = (y2 - y1)/d, d = (x2 − x1)2 + ( y2 − y1)2
Расстояние произвольной точки на этой прямой от точки (x3, y3) определяется параметром t (см. также задачу 864).
879. Даны натуральные числа х1, у1, х2, у2, х3, у3. Построить отрезок с координатами концов (x1, y1), (x2, y2) и опустить на него или на его продолжение перпендикуляр из точки (x3, y3) (см. предыдущую задачу и задачу 876)
880. Даны натуральные числа х1, у1, х2, у2. Построить отрезок с координатами концов (x1, y1) и (x2, y2) и какой-нибудь отрезок, параллельный и равный по длине первому отрезку и отстоящему от него на 30 единиц (см. задачу 871 и 878).
881. Пусть стрелка, соединяющая две произвольные точки, устроена, как в задаче 127. Даны натуральные числа x1, y1, x2, y2.
Построить стрелку, направленную из точки (x1, y1) в точку (x2, y2). (Способ определения координат точки, лежащей на отрезке с заданными концами и делящий отрезок в заданном отношении, см. в задаче 864. Способ построения прямой, перпендикулярной данной, см. в задаче 878).
882. Даны натуральные числа х, у, r, x1, y1, h, w. Построить окружность радиуса r с центром в точке (x, у), прямоугольник с центром в точке (x1, y1) высотой h и шириной w, а также отрезок, соединяющий центр окружности с центром прямоугольника (рис. 83).
(x, y) |
(x, y) |
(x1, y1) |
|
(x1, y1) |
|
|
|
Рис. 83 |
|
Рис. 84 |
883. Даны натуральные числа х, у, r, x1, y1, h, w. Построить окружность радиуса r с центром в точке (x, у), прямоугольник с центром в точке (x1, y1) высотой h и шириной w, а также отрезок, соединяющий окружность с прямоугольником. Отрезок должен лежать на невидимой прямой, проходящей через центры окружности и прямоугольника и начинаться в точке пересечения этой прямой с окружностью и заканчиваться в точке пересечения прямой с прямоугольником(рис. 84).
(Способ определения координат точек пересечения прямой проходящей через две заданные точки, с окружностью и прямоугольником см. в задачах 876 и 873.)
884.Даны натуральные числа х, у, n, символы s1 , ..., sn .
Последовательность символов s1,...,sn вывести так, чтобы точка с координатами (х, у) была расположена (рис. 85):
а) по центру последовательности; б) с левого края последовательности;
в) с правого края последовательности.
ТЕКСТ |
ТЕКСТ |
ТЕКСТ |
(x, y) |
(x, y) |
(x, y) |
а |
б |
в |
Рис. 85 885. Пусть в двумерной декартовой системе координат задана
плоская фигура и пусть (x, y)- координаты одной из ее точек. Рассмотрим, как изменятся эти координаты, если к фигуре применить одно из следующих преобразований: перенос вдоль осей координат, поворот вокруг начала координат, растяжение (сжатие) по осям координат.
1) Перенос на tx единиц по оси ОХ и ty единиц по оси OY:
|
(x, y) → |
(x − tx , y − ty ). |
2) |
Растяжение (сжатие) по оси ОХ в sx ; раз и по оси OY в sy |
|
раз: |
|
|
|
(x, y) → |
(sx x, sy y). |
3) |
Поворот вокруг начала координат на угол t радиан: |
|
|
(x, y) → |
(x cos t + y sin t, − x sin t + y cos t). |
Треугольник задан координатами вершин. Построить его, а затем перенести на десять единиц по оси ОХ и на пять единиц по оси
OY.
886. Даны натуральные числа xc , yc , r и действительное число t.
Построить правильный пятиугольник, вписанный в окружность с центром в точке (xc , yc ) и радиусом r, после чего повернуть его относительно начала координат на угол t радиан (см. предыдущую задачу).
887. Даны натуральные числа xc , yc , r, sx , sy . Построить правильный шестиугольник с центром в точке (xc , yc ) и стороной r,
после чего растянуть (сжать) его по оси ОХ в sx раз, а по оси OY- в sy
раз (см. задачу 885).
888. Построить фигуру, изображенную на рис. 86. В центре фигуры находится равносторонний треугольник с заданной стороной (см. задачу 885).
889. Выполнить задания а) - е) задачи 849, после чего применить к построенным фигурам следующие преобразования:
а) перенос по оси ОХ на 10 единиц в направлении, обратном направлению оси;
б) поворот относительно начала координат на угол π 4 радиан;
в) растяжение (сжатие) по оси OY в два раза (см. задачу 885).
890. Построить спираль, описанную в задаче 851, после чего применить к ней преобразования а) - в) предыдущей задачи.
891. Даны натуральные числа xc , yc , a, b и действительное t.
Начертить эллипс с центром в точке (xc , yc ) , большой осью a, малой осью b, большая ось образует угол t радиан с положительной полуосью
ОХ (рис. 87).
Воспользоваться следующим алгоритмом. Построить эллипс с центром в начале координат, с большой и малой осями, совпадающими с осями ОХ и OY системы координат (параметрические уравнения такого эллипса даны в задаче 849). После чего применить к эллипсу следующие преобразования: поворот на угол t радиан и перенос по оси
ОХ на xc единиц, по оси OY - на yc единиц (см. задачу 885).