Главная > Алгоритмы машинной графики и обработки изображений
НАПИШУ ВСЁ ЧТО ЗАДАЛИ
СЕКРЕТНЫЙ БОТ В ТЕЛЕГЕ
<< Предыдущий параграф Следующий параграф >>
Пред.
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
След.
Макеты страниц

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

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO

10.6. ДУГИ ОКРУЖНОСТЕЙ

Теперь займемся некоторыми задачами, связанными с воспроизведением кривых. В следующем разделе будут обсуждены проблемы, порождаемые дискретностью данных. Здесь рассмотрим одну специфическую задачу, которая часто возникает в прикладных задачах машинной графики: отыскание дуги окружности с заданным радиусом соединяющей две заданные точки с координатами (точка ). Для этого необходимо найти координаты центра соответствующей окружности и затем выбрать подходящую дугу из четырех возможных вариантов. В первую очередь следует определить координаты точки расположенной посередине прямой соединяющей две концевые точки:

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

Центр окружности лежит на нормали к прямой проходящей через ее среднюю точку. Если имеет нулевое значение (прямая — вертикаль), то значение координаты центра окружности определяется следующим образом.

а координата центра окружности может принимать одно из двух значений:

Если прямая не вертикальна, то для определения координат центра окружности требуется затратить несколько больше усилий. Во-первых, определяется угловой коэффициент прямой (рис. 10.7)

и, во-вторых, — квадрат расстояния между центром окружности и средней точкой:

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

Рис. 10.7 Иллюстрация к процедуре определения и некоторой дуги окружности с заданным радиусом, соединяющей две точки. Сегмент обозначает линию упоминаемую в тексте.

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

Выражения, содержащие и, представляют собой синус и косинус угла (см. рис. 10.7). (Вспомните о существовании тригонометрических тождеств, определяющих синус и косинус угла через его тангенс)

Уравнения (10.34) предусматривают вычисление большего, чем необходимо, числа квадратных корней. Подстановка в них значения из уравнения (10.33) и значения и из уравнения (10.32) дает следующее:

На рис. 10.7 изображены два центра окружностей. Поскольку каждому центру соответствуют также две допустимые дуги, то в общем случае задача соединения двух точек дугой с заданным радиусом имеет четыре решения. Даже если зафиксировать направление — по или против часовой стрелки, то еще остаются два решения. Предпочтение обычно отдается более короткой из двух дуг. (Если равно нулю, то длина обеих дуг, естественно, одинакова.) Если ввести разности координат

то можно определить значения углов относительно оси х линий, соединяющих центр с каждой концевой точкой соответственно (обозначения см. на рис. 10.7).

Здесь арктангенс принимает значение Если разность — положительна (как на рис. 10.7 для нижнего центра А), то длина дуги, проведенной от первой точки ко второй по часовой стрелке, равна Если эта разность отрицательна (как на рис. 10.7 для верхнего центра В), то длина дуги, проведенной

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

Иногда мы располагаем третьей точкой и требуется выбрать дугу, проходящую ближе всех остальных к этой точке. Используя ее координаты можно вычислить ее расстояние от обоих центров и выбрать тот центр, расстояние до которого ближе всего к значению радиуса. Если точка расположена с той же стороны прямой что и центр выбранной окружности, то следует выбирать большую из двух дуг, в противном случае следует выбирать меньшую. Это решение может основываться на определении проекции сегмента на прямую обозначает центр окружности —А или В на рис. 10.7).

Лемма 10.1. Пусть на плоскости заданы три точки — и и М, и — взятая с соответствующим знаком разность координат к точек К и аналогичным образом определены разности координат В таком случае длина проекции сегмента на сегмент равна сумме деленной на длину сегмента

Эта лемма легко доказывается с помощью простых геометрических построений. В нашем случае лемму можно непосредственно использовать, считая точкой К точку точкой — центр выбранной окружности и точкой М — центр второй окружности. Поскольку длина проекции сравнивается с половиной расстояния между центрами, деление на длину можно опустить (см. задачу 10.10).

Пример 10.4. Необходимо провести дугу радиусом 10 из начала координат (0,0) в точку (5,5) таким образом, чтобы она проходила вблизи точки (3,4). Находим, что . В таком случае использование уравнения (10.34) приводит к получению кандидатами на роль центров дуги являются точки с координатами (8,115; — 4,155) и Расстояние третьей точки от первой точки-кандидата составляет 9,59, а от второй — 8,76. Значение первой ближе к значению радиуса (10), и поэтому в качестве центра выбирается точка с координатами (8,115; — 4,115). Использование уравнения (10.36) дает По таблице значений тригонометрических функций (или с помощью калькулятора) определяются углы рад и рад; таким образом, длина дуги с направлением по часовой стрелке равна Очевидно, что дуга с направлением по часовой стрелке короче дуги с направлением против часовой стрелки, поскольку длина соответствующей окружности равна 31,4. Числитель выражения, определяемого леммой 10.1, равен Так как это значение меньше удвоенного значения расстояния следует выбирать более длинную из двух дуг. Итак, искомая дуга должна быть проведена по часовой стрелке.

1
Оглавление
email@scask.ru