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

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

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

 
 Ответить  Открыть новую тему 
> Графика (шаровой сегмент)
Edison
сообщение 17.01.2009 16:57
Сообщение #1





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

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


Собствено нужно построить шаровой сегмент.Размерность произвольная.

Добавлено через 13 мин.
Для начала хотел попробывать нарисовать эллипсную дугу,но почему-то не получается:

Program ris;
uses crt,graph;
var
driver,mode:integer;
x,y:integer;
xr.yr:word;
begA,endA:word;
begin
driver:detect;
initgraph (driver,mode,'d:\bp\bgi');
setcolor (4);
x:=100;
y:=200;
xr:=30;
yr:=30;
begA:=20;
endA:=20;
ellipse (x,y,begA,endA,xr,yr);
readln;
closegraph
end.


Появляется чёрный экран и не более.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.01.2009 17:29
Сообщение #2


Гость






Цитата
почему-то не получается
Вообще-то и не должно, угол начала и угол окончания дуги у тебя совпадают, а значит, никакой дуги-то и нет...
 К началу страницы 
+ Ответить 
Edison
сообщение 17.01.2009 19:03
Сообщение #3





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

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


Штрих-пунктирную дугу можно нарисовать при помощи процедуры SetLineStyle или как-то по другому?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.01.2009 19:21
Сообщение #4


Гость






SetLineStyle влияет только на рисование отрезков, на кривые ее действие не распространяется. Придется тебе рисовать маленькие отрезки дуг в цикле.
 К началу страницы 
+ Ответить 
Edison
сообщение 18.01.2009 19:26
Сообщение #5





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

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


Цитата(volvo @ 17.01.2009 19:21) *

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


И как в программе должен выглядеть этот цикл?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.01.2009 20:21
Сообщение #6


Гость






Вот так, например:
Program ris;
uses crt,graph;

procedure DashedEllipse(X, Y: Integer; StAngle, EndAngle: Word;
XRadius, YRadius: Word);
const
angle = 10;
var
i, n: integer;
color: integer;
begin
n := (EndAngle - StAngle) div angle;
color := GetColor;
for i := 1 to n do begin { <--- Вот этот самый цикл }
if odd(i) then setcolor(color) else setcolor(getbkcolor);
Ellipse(X, Y, StAngle + pred(i) * angle, StAngle + i * angle,
XRadius, YRadius);
end;
setcolor(color);
end;


var
driver,mode:integer;
x,y:integer;
xr,yr:word;
begA,endA:word;
begin
driver:=detect;
initgraph(driver, mode, 'd:\bp\bgi');
setcolor(white);
x:=100;
y:=200;
xr:=30;
yr:=30;
begA:=20;
endA:=220;
dashedellipse(x, y, begA, endA, xr, yr);
readln;
closegraph
end.
 К началу страницы 
+ Ответить 
Edison
сообщение 19.01.2009 18:16
Сообщение #7





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

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


Никак не получается добавить цикл в:


Program segment;
uses crt,graph;
var
driver,mode:integer;
x,y:integer;
r,rx,ry:word;
begA,endA:word;
begin
clrscr;
driver:=detect;
initgraph (driver,mode,'d:\bp\bgi');
setcolor (15);
x:=320;
y:=240;
r:=100;
begA:=30;
endA:=150;
arc (x.y.begA,endA,r);
begA:=195;
endA:=347;
rx:=90;
ry:=40;
y:=180;
r:=50;
ellipse (x,y,begA,endA,rx,ry);
begA:=14;
endA:=165;
y:=200;
ellipse (x,y,begA,endA,rx,ry);{эту дугу хотелось бы увидеть штрих-пунктирной}
readln;
end.




Сообщение отредактировано: Edison - 19.01.2009 18:22
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.01.2009 18:41
Сообщение #8


Гость






Цитата
{эту дугу хотелось бы увидеть штрих-пунктирной}
Я для кого выше привел реализацию DashedEllipse? Вызов Ellipse меняешь на вызов этой процедуры, и получаешь, что хотел...
 К началу страницы 
+ Ответить 

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

 



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