IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> как нарисовать круг......, .......только точками???
leone.incognito
сообщение 19.08.2007 14:47
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской
Реальное имя: Левон

Репутация: -  -4  +


Собственно сам ворпос:Как нарисовать !!точками!! круг или дугу(с помощью функции PutPixel?) в Паскале? unsure.gif


Добавлено через 1 мин.
хотя-бы принцып!


--------------------
"Непросто тем,кто полагается на истину авторитета,вместо того,чтобы полагаться на авторитет истины"
Джэрольд Мэсси
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 7)
volvo
сообщение 19.08.2007 15:00
Сообщение #2


Гость






Собственно, переходим в полярную систему координат... Как нарисовать окружность в полярной системе? Правильно, Phi изменяем от 0 до 360 с нужным тебе шагом, R остается неизменным. Все что тебе осталось - это вот тут:
Графика
взять процедуру перевода координат из полярной СК в декартову, и отрисовать точки
 К началу страницы 
+ Ответить 
leone.incognito
сообщение 19.08.2007 15:18
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской
Реальное имя: Левон

Репутация: -  -4  +


хе-хе.А сколько лет мне далжно быть чтоб лазить в этом форуме?(А так : спосибо)


--------------------
"Непросто тем,кто полагается на истину авторитета,вместо того,чтобы полагаться на авторитет истины"
Джэрольд Мэсси
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
compiler
сообщение 26.08.2007 20:44
Сообщение #4


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


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

если тебя пугает полярная система координат или тригонометрия, то круг можна нарисовать так
Прикрепленное изображение, где А и С произвольные точки, а О центр с заданными координатами.
1)найти координаты точки А
нам нужна любая начальная точка... для этого выражаем одну координату через другое(уравнение длины отрезка), а вторую координату оставляем такой как есть
2)Шаг
нам необходимо выбрать шаг(длинна АС)
если шаг задается в длине дуги(а не отрезка), то находим длину отрезка(через пи).
3)треугольник АСО
выражаем длинны АС и СО
4)система уравнений
2 уравнения, 2 неизвестных. решаем...
рисуем точку в получиных координатах
ЗЫ так как использовались уравнения 2-го порядка будут моменты когда надо будет делать выбор... но в круге это не важно
ЗЗЫ если пространство трехмерное то необходима еще одна точка(например точка напротив А) для третьего уравнения.
ЗЗЗЫ( smile.gif ) будут вопросы пиши...


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
leone.incognito
сообщение 30.08.2007 23:12
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской
Реальное имя: Левон

Репутация: -  -4  +


а моно-ли не использовать шаг... а определить его с помощью угла?(насчёт предыд.сообщения :я перешёл в девятый) .Дело в том что основная моя задача создать массив точек в ТРЁХ измерениях ,использовать какую-нибудь из них как ось и прокрутить всё это вокруг неё. Я уже писал нечто подобное в алгоритмах но там мне указали на квантерионы(так они наз.?) и всё.Я почитал статьи-обалдел .... wacko.gif и понял что сначала-бы хорошо разобраться в 2D . Тут мне в голову пришла мысль что наверно круг рисуют через градус и я решил написать об этом здесь .... norespect.gif (это неправильно-сам понял) .в общем вот в чём дело: что такое угол в координатной системе? знаем что есть ось О (x,y) ,точка А (x,y) и угол (любой )....расстояние между ними(точкой О и А ) сохраняется....h-h-h-h-h-e-e-e-e-e-e-l-l-l-l-l-l-l-l-l-l-l-l-l-l-l-l-l-l-l-p!!! как я понимаю тут есть точка (например) С в которую переходит А, какое-то их отношение будет равно углу .... эххххх

Добавлено через 4 мин.
а так спасибо


--------------------
"Непросто тем,кто полагается на истину авторитета,вместо того,чтобы полагаться на авторитет истины"
Джэрольд Мэсси
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 31.08.2007 9:38
Сообщение #6


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


uses graph;

function get_x(const x: single; const r: integer): single;
begin
get_x := r * sin(x / 180 * pi);
end;

function get_y(const y: single; const r: integer): single;
begin
get_y := r * cos(y / 180 * pi);
end;

procedure draw_circle(const radius, cx, cy, color: integer);
var
angle: single;
begin
angle := 0;
while (angle < 360) do begin
putpixel(round(cx + get_x(angle, radius)), round(cy - get_y(angle, radius)), color);
angle := angle + 1;
end;
end;

var
gd, gm: integer;

begin

gd := detect;
initgraph(gd, gm, '');

draw_circle(50, getmaxx div 2, getmaxy div 2, red);
draw_circle(30, getmaxx div 2 + 100, getmaxy div 2 - 100, white);

readln;
closegraph();
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Archon
сообщение 1.09.2007 9:28
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Странно, что никто не вспомнил алгоритм Брезенхама для рисования окружности. Вот подробное описание вместе с реализацией на Паскале: МИФ N 4(7)/1998 Алгоритм Брезенхема построения окружности


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Чужак
сообщение 2.09.2007 15:13
Сообщение #8


меркантильный
***

Группа: Пользователи
Сообщений: 161
Пол: Мужской

Репутация: -  6  +


Вот смотри-эллипс не только отрисовывается по точкам,
но и вращается. Как реализовывать систему координат, объяснял на форуме volvo.

program El;
uses crt,graph;
var gd, gm, X0, Y0: Integer;
X,Y,cX,cY,a,b,i,angl: Real;
begin
gd := detect;
initgraph(gd, gm, '');
X0:=320; Y0:=240; i:=0;
a:=50; b:=150; angl:=0;
repeat
while i<360 do
begin
i:=i+0.5;
cX:=a*cos(i);
cY:=b*sin(i);
X:=X0+cX*cos(angl)-cY*sin(angl);
Y:=Y0+cX*sin(angl)+cY*cos(angl);
PutPixel(Round(X), Round(Y), 15);
end;
Delay(200); i:=0;
ClearDevice; angl:=angl+0.01;
until keypressed;
closegraph;
end.

Убираешь отсюда цикл
while i<360 do 
,
убираешь
 ClearDevice; 
и
 angl:=angl+0.01;

-это все для вращения.
И вот-отрисовка эллипса по точкам.
А часный случай эллипса-это круг.


--------------------
Смысл откроется тебе. Красками играя
Жизнь предстанет как поток без конца и края.


В этом мире порой разбиваютсямечты
Но чтобы он стал другой Вдруг в него приходишь ТЫ...

После странствий и скитаний настают другие времена.
Старая волна уходит и приходит новая волна.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 17:34
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"