Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 01.06.2007, 00:25   #1
NoTes
 
Регистрация: 01.06.2007
Сообщений: 4
По умолчанию Паскаль. Построение диаграмм

народ... всем привет... задача такая диск вертится вокруг своей оси он поделен на сктора в каждом секторе свой цвет и к каждому сектору своя цыфра причем они не должны повтаряться... как сделать чтообы были цыфры... а то он у меня крутиться вертиться а цифирь нет...
NoTes вне форума Ответить с цитированием
Старый 01.06.2007, 06:29   #2
Сильванович Михаил
Студент
Форумчанин
 
Регистрация: 10.11.2006
Сообщений: 196
По умолчанию

Перефразируй - не понятно, чего именно ты хочешь.
Visita Interiorem Terrae Rectificando Operae Lapidem...
Сильванович Михаил вне форума Ответить с цитированием
Старый 01.06.2007, 07:26   #3
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,538
По умолчанию

ну а ты их как-то выводишь, чтобы они показывались? в паскакале есть процедура для вывода текста: TextOutXY( или чет такое, точно не помню уже).
pu4koff вне форума Ответить с цитированием
Старый 03.06.2007, 15:51   #4
NoTes
 
Регистрация: 01.06.2007
Сообщений: 4
Печаль

Цитата:
Сообщение от Сильванович Михаил Посмотреть сообщение
Перефразируй - не понятно, чего именно ты хочешь.
задано построить диограмму или хз как то называется.. чтобы круг делился на сектора, эти сектора заливались разными цветами и в каждом секторе были цыфры ... и вся эта хреновена должна крутиться... так вот я не могу сделать чтобы у меня были цыфры... если один сектор то цифра рисуется, а если их несколько, то цифр вапще нет...
NoTes вне форума Ответить с цитированием
Старый 03.06.2007, 15:54   #5
NoTes
 
Регистрация: 01.06.2007
Сообщений: 4
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
ну а ты их как-то выводишь, чтобы они показывались? в паскакале есть процедура для вывода текста: TextOutXY( или чет такое, точно не помню уже).
так оно выводиться, только не там где надо... в том то и дело что я не зню как опредилить эти ху координаты... как эти координаты с сектором связать?
NoTes вне форума Ответить с цитированием
Старый 03.06.2007, 16:15   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,538
По умолчанию

ну если я не ошибаюсь, то сектор выводится по углам (начальному и конечному). находишь биссектрису угов ну и дальше на нужном расстоянии от центра на этой биссектрисе выбираешь точку...
pu4koff вне форума Ответить с цитированием
Старый 03.06.2007, 21:24   #7
Сильванович Михаил
Студент
Форумчанин
 
Регистрация: 10.11.2006
Сообщений: 196
По умолчанию

Неприятная картина будет наблюдаться, если секторов будет, ммм, скажем, 50.

Мож, лучше внизу экрана отрисовать таблицу обозначений?
Visita Interiorem Terrae Rectificando Operae Lapidem...
Сильванович Михаил вне форума Ответить с цитированием
Старый 11.06.2007, 15:54   #8
NoTes
 
Регистрация: 01.06.2007
Сообщений: 4
По умолчанию

driver:=detect;
initGraph(driver,mode,' ');
setcolor(3);

started:=140;
centerx:=getmaxx div 2;
centery:=getmaxy div 2;
direction:=true;

while direction=true do
begin
if keypressed then

key:=readkey;
if key=#27 then break;
if key=#77 then
begin
centerx:=centerx+2;
if centerx=570 then centerx:=70;
end;
if key=#75 then
begin
centerx:=centerx-2;
if centerx=70 then centerx:=570;
end;
if key=#80 then
begin
centery:=centery+2;
if centery=410 then centery:=70;
end;
if key=#72 then
begin
centery:=centery-2;
if centery=70 then centery:=410;
end;
setfillstyle(0,0);
bar(0,0,getmaxx,getmaxy);

started:=started+20;
if started>=360 then started:=0;
current:=base;
prevangl:=0;
nextangl:=started;
colori:=1;
while(current<>nil) do
begin

if colori>=15 then colori:=1;
colori:=colori+1;
if colori=3 then colori:=4;
prevangl:=nextangl;
if prevangl>=360 then prevangl:=prevangl-360;
nextangl:=prevangl+round(current^.p ercent*360);
setfillstyle(1,colori);
if nextangl>=360 then
begin
pieslice(centerx,centery,prevangl,3 60,70);

setcolor(colori);
setlinestyle(0,0,0);
line(centerx+1,centery,centerx+69,c entery);

nextangl:=nextangl-360;
prevangl:=0;
end;
pieslice(centerx,centery,prevangl,n extangl,70);

xy:=centerx+round(50*cos((nextangl-10)*pi/180));
yy:=centery-round(50*sin((nextangl-10)*pi/180));

setcolor(1);
str(current^.i,chi);
moveto(xy,yy);
outtext(chi);
current:=current^.next;
end;
delAY(10000);



вот часть кода... код рабочий... только он с ошибкой... диаграмма по нажатию стрелки должна изменить 1 раз сваю координату центра... но она зациклина и по нажадию стрелки диограмма движется в ту сторону пока не нажмется другая клавиша... как это исправить помогите пожалуйста! если надо скину весь код программы!
NoTes вне форума Ответить с цитированием
Старый 12.06.2007, 14:19   #9
InternetStranger
php / delphi
Форумчанин
 
Аватар для InternetStranger
 
Регистрация: 10.06.2007
Сообщений: 175
По умолчанию

Задачи по физике любишь решать?! Вот и введи угловую W и линейные скорости V. V = W*R.

А еще лучше перейди от декартовой системы координат (Oxy), в полярную! (там вместо двух точек, координаты задаются радиус- вектором и его отклонением, "азимутом" так сказать).
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра.
InternetStranger вне форума Ответить с цитированием
Старый 12.06.2007, 16:33   #10
InternetStranger
php / delphi
Форумчанин
 
Аватар для InternetStranger
 
Регистрация: 10.06.2007
Сообщений: 175
По умолчанию

Нипонял ничего в твоей проге. потому свою настряпал!
Только вот упорно ничего не помню из Паскаля - как там эти флуудфилы работают. не закрашивается короче.
Исходники:
delphi3 (сделано в пайнтбоксе, потому ничего не закрашивается)
tp7
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра.
InternetStranger вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построение диаграмм из БД ChiToK Помощь студентам 3 21.04.2008 10:38
Построение диаграмм Smith777 Помощь студентам 2 26.02.2008 16:26