Заблокирован
1

Назвать оси, нарисовать стрелки к осям, и добавить масштабирование

12.03.2015, 21:29. Показов 1507. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, дорогие жители форума.

Нужна ваша помощь в реализации задания.
Есть код:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
uses crt,graph;
const n=8;
var r,g,d,i,x0,y0:integer;
    p:array[1..n+1]of Pointtype;
    a,da:real;
    s:string;
begin
clrscr;
repeat
write('0<R<240 R=');
readln(r);
until r in [1..239];
g:=0;
initgraph(g,d,'');
x0:=getmaxX div 2;
y0:=getmaxY div 2;
line(0,y0,2*x0,y0);{линии осей}
line(x0,0,x0,2*y0);
for i:=1 to 300 do{засечки на осях}
if i mod 20=0 then{через 20 пикселей}
 begin
  str(i,s);{преобразуем числа в строки}
  settextstyle(0,1,1);{вертикальный шрифт}
  line(x0+i,y0-3,x0+i,y0+3);{засечки}
  outtextXY(x0+i+5,y0+10,s);{подписи}
  line(x0-i,y0-3,x0-i,y0+3);
  outtextXY(x0-i+5,y0+10,'-'+s);
  settextstyle(0,0,1);{горизонтальный шрифт}
  line(x0-3,y0-i,x0+3,y0-i);
  outtextXY(x0-30,y0-i,s);
  line(x0-3,y0+i,x0+3,y0+i);
  outtextXY(x0-35,y0+i,'-'+s);
 end;
da:=360/n;
a:=0;
for i:=1 to n do
 begin
  p[i].x:=x0+round(r*cos(a*pi/180));
  p[i].y:=y0-round(r*sin(a*pi/180));
  a:=a+da;
  end;
p[n+1].x:=p[1].x;
p[n+1].y:=p[1].y;
SetColor(12);
for i:=1 to 4 do
 begin
  Line(p[i].x,p[i].y,p[i+4].x,p[i+4].y);
  end;
drawpoly(n+1,p);
Circle(x0,y0,r);
readln
end.
(с) Puporev

Передо мной стоят задачи:
1) Назвать оси
2) Нарисовать стрелки к осям
3) Создать масштабирование

Масштабирование состоит в том, чтобы координаты на засечках зависели от вводимого радиуса (R), то есть какой я радиус (R) не вводил график должен быть все равно нарисован, и чтобы цифры на засечках отображались правильно.
Я подозреваю, что график должен быть статичен, а цифры на засечках менялись в соответствии с R, но я не уверен. Реализовать у меня все равно не выходит.

Видел тему с подобным вопросом, но там не было ответа.

Добавлено через 29 минут
Я просто уже в отчаянии, сколько над этой задачей не сидел, идей так и не появилось. Все попытки что нибудь придумать были четными, а сроки сдачи уже поджимают.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2015, 21:29
Ответы с готовыми решениями:

Построить 3D модель по варианту. Реализовать масштабирование, поворот и перемещение сцены по всем осям
Подскажите мне пожалуйста, где можно посмотреть похожий пример. Или почитать в инструкциях как...

Графика Паскаль: Изобразить оси координат, и штриховку, 10 делений, по обоим осям
Изобразить оси координат, и штриховку, 10 делений, по обоим осям

Масштабирование графика по оси Y
Привет всем. У меня есть график, нарисованный в Canvas, на ImageView с постоянной переменной X и...

Неправильное масштабирование графика по оси Y
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2015, 21:29
Помогаю со студенческими работами здесь

Масштабирование оси в Windows Forms Charting
Может кто сталкивался. Имеем чарт с забинденнымы данными: var results = (from r in...

Нарисовать стрелки
Народ помогите пожалуйста, все не могу нарисовать стрелки, в классе myscene.cpp есть функция...

Нарисовать стрелки на концах осей
uses Graph; var xn, xk, x, y, mx, dx: real; cX, cY, my, i, px, py: integer; s: string; ...

Нарисовать квадрат, стороны которого не параллельны осям, по его диагонали произвольно в плоскости ХоУ
Здраствуйте. Подскажите пожалуйста код, который бы рисовал квадрат по его диагонали произвольно в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru