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

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

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

> Задача на точки, горю(
erwin
сообщение 4.03.2007 0:23
Сообщение #1





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

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


Товарищи, помогите, пожалуйста, решить следующую задачку, я подозреваю, что должна решаться с помощью Graph. Буду благодарен за любую помощь!

"Нарисовать на экране отрезок. Затем поставить n-точек таким образом, чтобы точки, попадающие на отрезок, рисовались одним цветом, другие - другим. n задается с клавиатуры"
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 5)
mamont001
сообщение 4.03.2007 0:30
Сообщение #2


Вожак стада
***

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

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


В чем собственно проблема ?
•В рисовании прямой ?
•В попадании точек на прямую ?
•В рисовании точек ?
•В изминении цвета ?
Поподробней обясни что тебе надо smile.gif


--------------------
Админ наш,
Иже еси на серверах!
Да святится имя Твое,
Да приидет Unix Твой,
Да будет воля Твоя,
Как на земле , так и на небе.
Пинг наш насущный дай нам на сей день;
И прости нам счета наши, как и мы оставляем их должникам нашим;
И не введи нас во искушение виндовое,
Но избавь нас от лукавого Билли.
И да пребудет с нами сила твоя великая,
Во имя Отца-админа, Сына-Пингвина, и духа мастдайного. Админь!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
mr.PiXEL
сообщение 4.03.2007 2:10
Сообщение #3





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

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


Точки задаются с помощью randomize, или пользователем?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
mamont001
сообщение 4.03.2007 3:01
Сообщение #4


Вожак стада
***

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

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


вот набросок (n-константа ,сам измениш)

uses graph;
const
n=50; //количество пикселей
var
p:boolean;
x1,y1,x2,y2:word;
pixelsx:array[1..n] of word;
pixelsy:array[1..n] of word;
i,grd,grm:integer;
begin
grd:=detect;
initgraph(grd,grm,''); // здесь указывается путь к bgi
x1:=100; {здесь задаються кординаты линииЪ
x2:=300;
y1:=200;
y2:=100;
line(x1,y1,x2,y2);
for i:=1 to n do
begin
pixelsx[i]:=random(640);
pixelsy[i]:=random(480);
p:=(pixelsx[i]-x1)*(y2-y1)=(pixelsy[i]-y1)*(x2-x1);
if p then putpixel(pixelsx[i],pixelsy[i],green) else putpixel(pixelsx[i],pixelsy[i],red);
putpixel(pixelsx[i],pixelsy[i],green);
end;
end.


Но за Библию не принимать stop.gif так как выскакивает рунтайм ерор . Но основная часть у тебя есть

Сообщение отредактировано: mamont001 - 4.03.2007 3:17


--------------------
Админ наш,
Иже еси на серверах!
Да святится имя Твое,
Да приидет Unix Твой,
Да будет воля Твоя,
Как на земле , так и на небе.
Пинг наш насущный дай нам на сей день;
И прости нам счета наши, как и мы оставляем их должникам нашим;
И не введи нас во искушение виндовое,
Но избавь нас от лукавого Билли.
И да пребудет с нами сила твоя великая,
Во имя Отца-админа, Сына-Пингвина, и духа мастдайного. Админь!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Bokul
сообщение 4.03.2007 3:19
Сообщение #5


Гуру
*****

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

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


Для чего массивы? И эти вычисления? Ты же можешь просто цвет пикселя функцией GetPixel


uses graph;
const
n=10000;
var
p:boolean;
x,y,color:word;
i,grd,grm:integer;
begin
grd:=detect;
initgraph(grd,grm,'');
color:=red;
SetColor(color);
line(100,300,200,100);
randomize;
for i:=1 to n do begin
x:=random(640);
y:=random(480);
if GetPixel(x,y)=color then
PutPixel(x,y,white)
else
PutPixel(x,y,blue);
end;
readln;
end.



Сообщение отредактировано: Bokul - 4.03.2007 3:19


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 4.03.2007 15:57
Сообщение #6


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

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

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


no1.gif Задача имхо именно на проверку принадлежеости точки прямой. Если 2 раза в одну и туже точку на прямой попадешь то второй-то раз она уже не тем цветом закрасится ... Можно конечно еще один else if ... добавить, но думаю всетаки надо математически проверять принадлежеость.


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

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

 



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