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

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

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

 
 Ответить  Открыть новую тему 
> помогите вращение окружности, 1
-Алексей-
сообщение 21.06.2008 14:32
Сообщение #1


Гость






как сделать вращение окружности... !! на pascal, пример колесо от велосипеда
 К началу страницы 
+ Ответить 
renesko1
сообщение 21.06.2008 16:08
Сообщение #2


поиск
****

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

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


Вот сделал из старой проги, которая была написана как тест к модулю.
Правдо все коряво из-за того, что она не была предназначена для рисования великого колеса(хаболгисты из
fallout) но все же.
Прикрепленный файл  xabologia.rar ( 51.66 килобайт ) Кол-во скачиваний: 308


Добавлено через 2 мин.
расстояние лучше задай около 200, а delay взависемости от твоего компа в целом 1000 это 1 сек.

Добавлено через 4 мин.
черт забыл код... Прикрепленный файл  dop.rar ( 62.83 килобайт ) Кол-во скачиваний: 279

delay можно и 0 так лучше, а дополнительнвй луч это моя погрешность у меня окружность равна 6.3 радиан.

Добавлено через 3 мин.
Введите кол во базовых точек 8
Расстояние от центра 200
delay - 0
вот неплохая комбинация

Сообщение отредактировано: renesko1 - 21.06.2008 16:17


--------------------
typedef void Śūnyatā ;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 21.06.2008 16:44
Сообщение #3


Гость






renesko1, а можешь сделать, еще, что нибудь типа чтобы при нажатии на клавищу курсора влево, колесо куртилось влево, и вправо также, и чтобы их было два, на одном экране..
 К началу страницы 
+ Ответить 
renesko1
сообщение 21.06.2008 17:09
Сообщение #4


поиск
****

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

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


Каламбур и бред в коду, бузумство копирования и непристойность стиля : у тебя эту прогу наверное не возьмут.
Но у меня приступ альтруизма smile.gif .

program arci;

uses graph, crt, unitlinkedList ;

const

krug = 6.3 ;
grDriver : integer = Detect ;

var

l, l1 : linkList ;
Colvo, grMode : integer ;
Npoint1, Npoint2 : integer ;
cer : real ;
stepAlfa, alfa : real ;
i, max, time : integer ;

x , y : integer ;
x0 , y0 : integer ;

x1, y1,xx,yy,j : integer ;
{****************************************************************}

procedure raspolog (const col : integer ;
const cer , stepalfa : real ) ;

const
krug = 6.3 ;

var

x0, y0, x, y, x1, y1,xx,yy : integer ;
alfa : real ;
i : integer ;
// stro : string ;

begin


alfa := 0 ;
x0 := getmaxx div 4 ;
y0 := getmaxy div 2 ;
// stepAlfa := krug / col ;
alfa := alfa + stepAlfa ;

x := round(x0 + cos ( alfa ) * cer ) ;
y := round(y0 + sin ( alfa ) * cer ) ;
line(x0, y0, x, y);

xx := (getmaxx div 4) * 3 ;
yy := y0 ;

x1 := round(xx + cos ( alfa ) * cer ) ;
y1 := round(yy + sin ( alfa ) * cer ) ;
line(xx, yy, x1, y1);


// Arc(x,y,0,360,1);
// outtextXY(x, y,'0');


L.Init(0, x, y) ;
l1.Init(0, x1, y1);


for i := 1 to col-1 do
begin

alfa := alfa + stepAlfa ;

x := round(x0 + cos ( alfa ) * cer ) ; //ключевая формула ей надо use если точки ориентированы вокруг оси
y := round(y0 + sin ( alfa ) * cer ) ; // alfa = angle(rad) ; cer = length from center

x1 := round(xx + cos ( alfa ) * cer ) ;
y1 := round(yy + sin ( alfa ) * cer ) ;

l.AddInEnd(x,y);
line(x0, y0, x, y);

l1.AddInEnd(x1,y1);
line(xx, yy, x1, y1);
// str(i, stro ) ;
// outtextXY(x, y,stro);
// Arc(x,y,0,360,1);

end ;

end ;
{********************************************************************}

{--main programm ------------------------------}

Begin
clrscr ;

InitGraph (grDriver, grMode, '') ;

write('Введите кол во базовых точек '); readln(Colvo);
write('Расстояние от центра '); readln(cer) ;
write('delay - ') ; readln(time) ;
write('links 1, recht 2 '); readln(j);

stepAlfa := krug / colvo ;

raspolog(ColVo, Cer, stepalfa) ;

x0 := getmaxx div 4 ;
y0 := getmaxy div 2 ;

xx := (getmaxx div 4) * 3 ;
yy := y0 ;

arc(x0, y0, 0, 360,round(cer));
arc(xx, yy, 0, 360,round(cer));

readkey ;

while true do
begin

{ write('Enter number 1 point '); readln(npoint1) ;
write('2 point '); readln(Npoint2);

l.extrackt(Npoint1, x1, y1);
l.extrackt(Npoint2, x2, y2);
line(x1,y1,x2,y2); }
max := l.richtkey ;
arc(x0, y0, 0, 360,round(cer));
arc(xx, yy, 0, 360,round(cer));
// writeln(max);

for i := 0 to max do begin
if j = 1 then
alfa := alfa + stepalfa + 0.1
else alfa := alfa + stepalfa - 0.1 ;
// delay(100);
l.extrackt(i, x, y);
setcolor(0);
line(x0, y0, x, y);
x := round(x0 + cos ( alfa ) * cer ) ;
y := round(y0 + sin ( alfa ) * cer ) ;
setcolor(15);
line(x0, y0, x, y);
l.delbykey(i);
l.addinend(x,y);
end ;

max := l1.richtkey ;
for i := 0 to max do begin
if j = 1 then
alfa := alfa + stepalfa + 0.1
else alfa := alfa + stepalfa - 0.1 ;
// delay(100);
l1.extrackt(i, x1, y1);
setcolor(0);
line(xx, yy, x1, y1);
x1 := round(xx + cos ( alfa ) * cer ) ;
y1 := round(yy + sin ( alfa ) * cer ) ;
setcolor(15);
line(xx, yy, x1, y1);
l1.delbykey(i);
l1.addinend(x1,y1);
end ;



delay(time);

end ;

readln ;

end .



Добавлено через 10 мин.
если хочешь про вращение вправо влево менять динамически то сделая переменную bool и меняй направление
вз от ее значения ввод с клавы не останавливая прорисрвку

procedure cursor_keys ;

var

key : char ;

begin

if keypressed then begin
key := readkey ;
case ord(key) of /// коды клавишь и дейсвия
45 : ....
34: ....

end ;

end ;
end ;



Сообщение отредактировано: renesko1 - 21.06.2008 17:12


--------------------
typedef void Śūnyatā ;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 21.06.2008 18:01
Сообщение #5


Гость






спасибо
 К началу страницы 
+ Ответить 
renesko1
сообщение 21.06.2008 18:23
Сообщение #6


поиск
****

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

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


Всегда пожалуйсто smile.gif


--------------------
typedef void Śūnyatā ;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 21.06.2008 18:57
Сообщение #7


Гость






прощу прощения, но у меня при компиляции ругается unitlinkedList .tpu ??
 К началу страницы 
+ Ответить 
renesko1
сообщение 21.06.2008 19:02
Сообщение #8


поиск
****

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

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


Сложи все что я переслал в одну кучу. А модуль засунь в папку с модулями.
unitlinkedList .tpu это модуль вроде я его выложил.
смотри архив с названием dop

Сообщение отредактировано: renesko1 - 21.06.2008 19:03


--------------------
typedef void Śūnyatā ;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 21.06.2008 19:07
Сообщение #9


Гость






у тебя ася есь
 К началу страницы 
+ Ответить 
renesko1
сообщение 21.06.2008 19:09
Сообщение #10


поиск
****

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

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


Зарегестрируйся и напиши в приват (кажется) а так нет.


--------------------
typedef void Śūnyatā ;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
foxix
сообщение 21.06.2008 19:17
Сообщение #11





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

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


зарегился
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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