Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/19: Рейтинг темы: голосов - 19, средняя оценка - 4.89
2 / 2 / 1
Регистрация: 24.10.2013
Сообщений: 200

Оптика. Построить собирающую и рассеивающую линзу

23.11.2013, 21:40. Показов 4111. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста. нужно построить собирающую и рассивающую линзу в делфи. не знаю как делать

Добавлено через 5 часов 52 минуты
помогите пожалуйста. очень надо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.11.2013, 21:40
Ответы с готовыми решениями:

Оптика. Построить собирающую и рассеивающую линзу
var Form1: TForm1; implementation {$R *.dfm} //рассеивающая procedure TForm1.Button1Click(Sender: TObject); var...

Нужно построить график (физика-оптика)
Здравсвуйте! Мне нужна помощь в построении графика.

Написать программу, собирающую статистику для проверки гипотезы
Лимит времени 2000/4000/4000/4000 мс. Лимит памяти 256000/256000/256000/256000 Кб. Британские учёные вновь шокируют мир великим...

38
 Аватар для Игорь[Igor]
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
30.11.2013, 11:16
Студворк — интернет-сервис помощи студентам
Ну смотри что делаешь
Delphi
1
form1.Image1.Canvas.MoveTo(190, 10)
190 это по X
10 это по Y
0
2 / 2 / 1
Регистрация: 24.10.2013
Сообщений: 200
30.11.2013, 11:20  [ТС]
это я понимаю где х, где y. не понимаю как это все посторить. (((((( уже почти сутки сижу так и не доходит все это до меня.
0
 Аватар для Игорь[Igor]
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
30.11.2013, 11:38
Я уже говорил как , нарисуй на листочке в клеточку, и смотри, пучть клеточка равна 20 допустим точкам, посмотрела где начало линии поставила, посмотрела где конец линии должен быть поставила.
0
2 / 2 / 1
Регистрация: 24.10.2013
Сообщений: 200
30.11.2013, 11:51  [ТС]
да уже все изресовано. не могу ниче сделать. У меня с графикой вообще проблемы((((((

Добавлено через 3 минуты
Delphi
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
53
54
55
procedure TForm1.FormCreate(Sender: TObject);
begin
  form1.Image1.Canvas.Pen.Color:=clSilver;
  form1.Image1.Canvas.Pen.Width:=2;
  form1.Image1.Canvas.MoveTo(10, 120);
  form1.Image1.Canvas.LineTo(400, 120);
 
  form1.Image1.Canvas.Pen.Color:=clBlue;
  form1.Image1.Canvas.Pen.Width:=2;
  form1.Image1.Canvas.MoveTo(200, 20);
  form1.Image1.Canvas.LineTo(200, 220);
  form1.Image1.Canvas.MoveTo(190, 10);
  form1.Image1.Canvas.LineTo(200, 20);
  form1.Image1.Canvas.MoveTo(210, 10);
  form1.Image1.Canvas.LineTo(200, 20);
  form1.Image1.Canvas.MoveTo(190, 230);
  form1.Image1.Canvas.LineTo(200, 220);
  form1.Image1.Canvas.MoveTo(200, 220);
  form1.Image1.Canvas.LineTo(210, 230);
 
  form1.Image1.Canvas.Pen.Color:=clBlack;
  form1.Image1.Canvas.Pen.Width:=1;
  form1.Image1.Canvas.MoveTo(120, 60);
  form1.Image1.Canvas.LineTo(200, 60);
  form1.Image1.Canvas.MoveTo(120, 180);
  form1.Image1.Canvas.LineTo(200, 180);
 
  form1.Image1.Canvas.MoveTo(120, 60);
  form1.Image1.Canvas.LineTo(280, 180);
 
  form1.Image1.Canvas.MoveTo(170, 150);
  form1.Image1.Canvas.LineTo(200, 150);
 
  form1.Image1.Canvas.Pen.Style:=psDot;
  form1.Image1.Canvas.MoveTo(120, 120);
  form1.Image1.Canvas.LineTo(120, 190);
 
  form1.Image1.Canvas.MoveTo(170, 170);
  form1.Image1.Canvas.LineTo(170, 160);
 
   form1.Image1.Canvas.MoveTo(120, 80);
  form1.Image1.Canvas.LineTo(120, 80);
 
 
 form1.Image1.Canvas.MoveTo(120, 100);
  form1.Image1.Canvas.LineTo(20, 190);
 
 
 
 
 
 
end;
 
end.
вот как у меня получется все в разные стороны((((((
0
 Аватар для Игорь[Igor]
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
30.11.2013, 12:01
Оно?
Delphi
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
 form1.Image1.Canvas.Pen.Color:=clSilver;
 form1.Image1.Canvas.Pen.Width:=2;
 form1.Image1.Canvas.MoveTo(10, 120);
 form1.Image1.Canvas.LineTo(400, 120);
 
 form1.Image1.Canvas.Pen.Color:=clBlue;
 form1.Image1.Canvas.Pen.Width:=2;
 form1.Image1.Canvas.MoveTo(200, 20);
 form1.Image1.Canvas.LineTo(200, 220);
 form1.Image1.Canvas.MoveTo(190, 10);
 form1.Image1.Canvas.LineTo(200, 20);
 form1.Image1.Canvas.MoveTo(210, 10);
 form1.Image1.Canvas.LineTo(200, 20);
 form1.Image1.Canvas.MoveTo(190, 230);
 form1.Image1.Canvas.LineTo(200, 220);
 form1.Image1.Canvas.MoveTo(200, 220);
 form1.Image1.Canvas.LineTo(210, 230);
 
 form1.Image1.Canvas.Pen.Color:=clBlack;
 form1.Image1.Canvas.Pen.Width:=1;
 form1.Image1.Canvas.MoveTo(120, 60);
 form1.Image1.Canvas.LineTo(200, 60);
 form1.Image1.Canvas.MoveTo(120, 180);
 form1.Image1.Canvas.LineTo(200, 180);
 
 form1.Image1.Canvas.MoveTo(120, 60);
 form1.Image1.Canvas.LineTo(280, 180);
 
 form1.Image1.Canvas.MoveTo(170, 150);
 form1.Image1.Canvas.LineTo(200, 150);
 
 form1.Image1.Canvas.Pen.Style:=psDot;
 form1.Image1.Canvas.MoveTo(120, 120);
 form1.Image1.Canvas.LineTo(120, 190);
 
 form1.Image1.Canvas.MoveTo(170, 170);
 form1.Image1.Canvas.LineTo(170, 160);
 
 form1.Image1.Canvas.MoveTo(120, 80);
 form1.Image1.Canvas.LineTo(120, 80);
 
 
 form1.Image1.Canvas.MoveTo(200, 60);
 form1.Image1.Canvas.LineTo(150, 120);
 
 form1.Image1.Canvas.Pen.Style:=psSolid;
 form1.Image1.Canvas.MoveTo(200, 60);
 form1.Image1.Canvas.LineTo(230, 50);
0
2 / 2 / 1
Регистрация: 24.10.2013
Сообщений: 200
30.11.2013, 12:05  [ТС]
ну почти только вот высоты нету.

Добавлено через 1 минуту
и направление стрелок надо ка то пришить(((((( извените меня пожалуйста за мое нахальство

Добавлено через 41 секунду
и еще фокусы нужно поставить
0
 Аватар для Игорь[Igor]
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
30.11.2013, 12:37
Delphi
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
 form1.Image1.Canvas.Pen.Color:=clSilver;
 form1.Image1.Canvas.Pen.Width:=2;
 form1.Image1.Canvas.MoveTo(10, 120);
 form1.Image1.Canvas.LineTo(400, 120);
 
 form1.Image1.Canvas.Pen.Color:=clBlue;
 form1.Image1.Canvas.Pen.Width:=2;
 form1.Image1.Canvas.MoveTo(200, 20);
 form1.Image1.Canvas.LineTo(200, 220);
 form1.Image1.Canvas.MoveTo(190, 10);
 form1.Image1.Canvas.LineTo(200, 20);
 form1.Image1.Canvas.MoveTo(210, 10);
 form1.Image1.Canvas.LineTo(200, 20);
 form1.Image1.Canvas.MoveTo(190, 230);
 form1.Image1.Canvas.LineTo(200, 220);
 form1.Image1.Canvas.MoveTo(200, 220);
 form1.Image1.Canvas.LineTo(210, 230);
 
 form1.Image1.Canvas.Pen.Color:=clBlack;
 form1.Image1.Canvas.Pen.Width:=1;
 form1.Image1.Canvas.MoveTo(120, 60);
 form1.Image1.Canvas.LineTo(200, 60);
 form1.Image1.Canvas.MoveTo(200, 60);
 form1.Image1.Canvas.LineTo(190, 65);
 form1.Image1.Canvas.MoveTo(200, 60);
 form1.Image1.Canvas.LineTo(190, 55);
 
 form1.Image1.Canvas.MoveTo(120, 180);
 form1.Image1.Canvas.LineTo(200, 180);
 form1.Image1.Canvas.MoveTo(120, 180);
 form1.Image1.Canvas.LineTo(130, 175);
 form1.Image1.Canvas.MoveTo(120, 180);
 form1.Image1.Canvas.LineTo(130, 185);
 form1.Image1.Canvas.MoveTo(200, 180);
 form1.Image1.Canvas.LineTo(190, 175);
 form1.Image1.Canvas.MoveTo(200, 180);
 form1.Image1.Canvas.LineTo(190, 185);
 
 form1.Image1.Canvas.MoveTo(120, 60);
 form1.Image1.Canvas.LineTo(280, 180);
 form1.Image1.Canvas.MoveTo(280, 180);
 form1.Image1.Canvas.LineTo(275, 170);
 form1.Image1.Canvas.MoveTo(280, 180);
 form1.Image1.Canvas.LineTo(270, 177);
 
 form1.Image1.Canvas.MoveTo(170, 150);
 form1.Image1.Canvas.LineTo(200, 150);
 form1.Image1.Canvas.MoveTo(200, 150);
 form1.Image1.Canvas.LineTo(195, 145);
 form1.Image1.Canvas.MoveTo(200, 150);
 form1.Image1.Canvas.LineTo(195, 155);
 form1.Image1.Canvas.MoveTo(170, 150);
 form1.Image1.Canvas.LineTo(175, 155);
 form1.Image1.Canvas.MoveTo(170, 150);
 form1.Image1.Canvas.LineTo(175, 145);
 
 
 form1.Image1.Canvas.Pen.Style:=psDot;
 form1.Image1.Canvas.MoveTo(120, 120);
 form1.Image1.Canvas.LineTo(120, 190);
 
 form1.Image1.Canvas.MoveTo(170, 120);
 form1.Image1.Canvas.LineTo(170, 160);
 
 form1.Image1.Canvas.MoveTo(120, 80);
 form1.Image1.Canvas.LineTo(120, 80);
 
 
 form1.Image1.Canvas.MoveTo(200, 60);
 form1.Image1.Canvas.LineTo(150, 120);
 
 form1.Image1.Canvas.Pen.Style:=psSolid;
 form1.Image1.Canvas.MoveTo(200, 60);
 form1.Image1.Canvas.LineTo(230, 40);
 form1.Image1.Canvas.MoveTo(230, 40);
 form1.Image1.Canvas.LineTo(225, 40);
 form1.Image1.Canvas.MoveTo(230, 40);
 form1.Image1.Canvas.LineTo(227, 45);
 
 form1.Image1.Canvas.MoveTo(115, 120);
 form1.Image1.Canvas.LineTo(115, 80);
 form1.Image1.Canvas.MoveTo(115, 80);
 form1.Image1.Canvas.LineTo(110, 80);
 form1.Image1.Canvas.MoveTo(110, 80);
 form1.Image1.Canvas.LineTo(120, 60);
 form1.Image1.Canvas.MoveTo(120, 60);
 form1.Image1.Canvas.LineTo(130, 80);
 form1.Image1.Canvas.MoveTo(130, 80);
 form1.Image1.Canvas.LineTo(125, 80);
 form1.Image1.Canvas.MoveTo(125, 80);
 form1.Image1.Canvas.LineTo(125, 120);
 
 form1.Image1.Canvas.MoveTo(167, 120);
 form1.Image1.Canvas.LineTo(167, 110);
 form1.Image1.Canvas.MoveTo(167, 110);
 form1.Image1.Canvas.LineTo(162, 110);
 form1.Image1.Canvas.MoveTo(162, 110);
 form1.Image1.Canvas.LineTo(170, 95);
 form1.Image1.Canvas.MoveTo(170, 95);
 form1.Image1.Canvas.LineTo(178, 110);
 form1.Image1.Canvas.MoveTo(178, 110);
 form1.Image1.Canvas.LineTo(173, 110);
 form1.Image1.Canvas.MoveTo(173, 110);
 form1.Image1.Canvas.LineTo(173, 120);
0
Почетный модератор
 Аватар для Puporev
64320 / 47616 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
30.11.2013, 13:05
Еще добавил для собирающей
http://musoch50.narod.ru/glaz/linza_sob_4.htm
и нарисовал так
Delphi
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
const f1=60;
      h1=60;
var
  Form1: TForm1;
implementation
 
{$R *.dfm}
//рассеивающая
procedure TForm1.Button1Click(Sender: TObject);
var x0,y0,d,f2,h2:integer;
begin
d:=100;
with image1.Canvas do
 begin
  x0:=image1.width div 2;
  y0:=image1.height div 2;
  Pen.Color:=clSilver;
  Pen.Width:=2;
  MoveTo(10, y0); LineTo(2*x0-10, y0); //ось Х
  Pen.Color:=clBlue;
  Pen.Width:=2;
  MoveTo(x0, 20);  LineTo(x0, 2*y0-20);//ось Y
  MoveTo(x0, 20);  LineTo(x0-5, 10);
  MoveTo(x0, 20);  LineTo(x0+5, 10);
  MoveTo(x0, 2*y0-20);  LineTo(x0+5,2*y0-10);
  MoveTo(x0, 2*y0-20);  LineTo(x0-5,2*y0-10);
  Pen.Color:=clBlack;
  Pen.Width:=1;
  //верхний луч
  MoveTo(x0-d,y0-h1); LineTo(x0-1,y0-h1);
  MoveTo(x0-5,y0-h1-3); LineTo(x0-1,y0-h1);
  MoveTo(x0-5,y0-h1+3); LineTo(x0,y0-h1);
  //луч через h и центр
  MoveTo(x0-d,y0-h1); LineTo(x0+d,y0+h1);
  MoveTo(x0+d,y0+h1); LineTo(x0+d-2,y0+h1-7);
  MoveTo(x0+d,y0+h1); LineTo(x0+d-7,y0+h1+1);
  //луч через F и верх
  pen.Style:=psDot;
  MoveTo(x0-f1,y0);LineTo(x0,y0-h1);
  pen.Style:=psSolid;
  MoveTo(x0,y0-h1);LineTo(x0+f1 div 4,y0-h1-h1 div 4);
  MoveTo(x0+f1 div 4,y0-h1-h1 div 4);
  LineTo(x0+f1 div 4-7,y0-h1-h1 div 4+2);
  MoveTo(x0+f1 div 4,y0-h1-h1 div 4);
  LineTo(x0+f1 div 4-2,y0-h1-h1 div 4+7);
  //положение фигуры
  MoveTo(x0-d+3,y0); LineTo(x0-d+3,y0-h1+6);
  MoveTo(x0-d-3,y0); LineTo(x0-d-3,y0-h1+6);
  MoveTo(x0-d+3,y0-h1+6); LineTo(x0-d+7,y0-h1+6);
  MoveTo(x0-d-3,y0-h1+6); LineTo(x0-d-7,y0-h1+6);
  MoveTo(x0-d-7,y0-h1+6); LineTo(x0-d,y0-h1);
  MoveTo(x0-d+7,y0-h1+6); LineTo(x0-d,y0-h1);
  MoveTo(x0-d-3,y0); LineTo(x0-d+3,y0);
  Brush.Color:=clBlue;
  FloodFill(x0-d,y0-5,clBlack, fsBorder);
  //отображение фигуры
  f2:=round(1/(1/d+1/f1));
  h2:=round(h1*f2/d);
  MoveTo(x0-f2+3,y0); LineTo(x0-f2+3,y0-h2+4);
  MoveTo(x0-f2-3,y0); LineTo(x0-f2-3,y0-h2+4);
  MoveTo(x0-f2+3,y0-h2+4); LineTo(x0-f2+5,y0-h2+4);
  MoveTo(x0-f2-3,y0-h2+4); LineTo(x0-f2-5,y0-h2+4);
  MoveTo(x0-f2+5,y0-h2+4); LineTo(x0-f2,y0-h2);
  MoveTo(x0-f2-5,y0-h2+4); LineTo(x0-f2,y0-h2);
  MoveTo(x0-f2-3,y0); LineTo(x0-f2+3,y0);
  Brush.Color:=clRed;
  FloodFill(x0-f2,y0-5,clBlack, fsBorder);
  ellipse(x0-f1-2,y0-2,x0-f1+2,y0+2);
  Brush.Color:=clYellow;
  ellipse(x0-f2-2,y0-2,x0-f2+2,y0+2);
  Brush.Style:=bsClear;
  textout(x0-d div 2,y0-h1-15,'d');
  textout(x0-f2,y0+10,'f');
  textout(x0-f1,y0+10,'F');
  textout(x0-d-20,y0-h1 div 2,'h');
  textout(x0-f2+10,y0-h2 div 2,'H');
 end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var x0,y0,d,f2,h2:integer;
begin
d:=150;
with image2.Canvas do
 begin
  x0:=image2.width div 2;
  y0:=image2.height div 2;
  Pen.Color:=clSilver;
  Pen.Width:=2;
  MoveTo(10, y0); LineTo(2*x0-10, y0); //ось Х
  Pen.Color:=clBlue;
  Pen.Width:=2;
  MoveTo(x0, 10);  LineTo(x0, 2*y0-10);//ось Y
  MoveTo(x0, 10);  LineTo(x0-5, 20);
  MoveTo(x0, 10);  LineTo(x0+5, 20);
  MoveTo(x0, 2*y0-10);  LineTo(x0+5,2*y0-20);
  MoveTo(x0, 2*y0-10);  LineTo(x0-5,2*y0-20);
  Pen.Color:=clBlack;
  Pen.Width:=1;
  //верхний луч
  MoveTo(x0-d,y0-h1); LineTo(x0-1,y0-h1);
  MoveTo(x0-5,y0-h1-3); LineTo(x0-1,y0-h1);
  MoveTo(x0-5,y0-h1+3); LineTo(x0,y0-h1);
  //луч через h и центр
  pen.Style:=psDot;
  MoveTo(x0-d,y0-h1); LineTo(x0+d,y0+h1);
  pen.Style:=psSolid;
  MoveTo(x0+d,y0+h1); LineTo(x0+d-5,y0+h1-6);
  MoveTo(x0+d,y0+h1); LineTo(x0+d-7,y0+h1+1);
  //луч через F и верх
  MoveTo(x0,y0-h1);LineTo(x0+3*f1,y0+2*h1);
  MoveTo(x0+3*f1,y0+2*h1);LineTo(x0+3*f1-2,y0+2*h1-7);
  MoveTo(x0+3*f1,y0+2*h1);LineTo(x0+3*f1-7,y0+2*h1-2);
  //положение фигуры
  MoveTo(x0-d+3,y0); LineTo(x0-d+3,y0-h1+6);
  MoveTo(x0-d-3,y0); LineTo(x0-d-3,y0-h1+6);
  MoveTo(x0-d+3,y0-h1+6); LineTo(x0-d+7,y0-h1+6);
  MoveTo(x0-d-3,y0-h1+6); LineTo(x0-d-7,y0-h1+6);
  MoveTo(x0-d-7,y0-h1+6); LineTo(x0-d,y0-h1);
  MoveTo(x0-d+7,y0-h1+6); LineTo(x0-d,y0-h1);
  MoveTo(x0-d-3,y0); LineTo(x0-d+3,y0);
  Brush.Color:=clBlue;
  FloodFill(x0-d,y0-5,clBlack, fsBorder);
  //отображение фигуры
  f2:=round(1/(1/f1-1/d));
  h2:=round(h1*f2/d);
  MoveTo(x0+f2+3,y0); LineTo(x0+f2+3,y0+h2-4);
  MoveTo(x0+f2-3,y0); LineTo(x0+f2-3,y0+h2-4);
  MoveTo(x0+f2+3,y0+h2-4); LineTo(x0+f2+5,y0+h2-4);
  MoveTo(x0+f2-3,y0+h2-4); LineTo(x0+f2-5,y0+h2-4);
  MoveTo(x0+f2+5,y0+h2-4); LineTo(x0+f2,y0+h2);
  MoveTo(x0+f2-5,y0+h2-4); LineTo(x0+f2,y0+h2);
  MoveTo(x0+f2-3,y0); LineTo(x0+f2+3,y0);
  Brush.Color:=clRed;
  FloodFill(x0+f2,y0+5,clBlack, fsBorder);
  ellipse(x0+f1-2,y0-2,x0+f1+2,y0+2);
  Brush.Color:=clYellow;
  ellipse(x0+f2-2,y0-2,x0+f2+2,y0+2);
  Brush.Style:=bsClear;
  textout(x0-d div 2,y0-h1-15,'d');
  textout(x0+f2,y0-15,'f');
  textout(x0+f1,y0-15,'F');
  textout(x0-d-20,y0-h1 div 2,'h');
  textout(x0+f2+10,y0+h2 div 2,'H');
 end;
end;
Это я отозвался на тему, которую удалили.
Вложения
Тип файла: rar Линзы изображение.rar (169.4 Кб, 12 просмотров)
0
2 / 2 / 1
Регистрация: 24.10.2013
Сообщений: 200
30.11.2013, 14:30  [ТС]
спасибо Вам большое всем. Я постараюсь разобраться сама сэтой программой теперь))))
0
2 / 2 / 1
Регистрация: 24.10.2013
Сообщений: 200
05.12.2013, 13:45  [ТС]
Delphi
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
var
  Form1: TForm1;
implementation
 
{$R *.dfm}
//рассеивающая
procedure TForm1.Button1Click(Sender: TObject);
var x0,y0,d,f2,h2,h1,f1:integer;
begin
d:=strtoint(edit1.Text);
 h1:=strtoint(edit2.Text);
 f1:=strtoint(edit3.Text);
 image1.Picture:=nil;
if radiogroup1.ItemIndex =0 then begin
//image1.Picture:=image2.Picture;
with image1.Canvas do
 begin
  x0:=image1.width div 2;
  y0:=image1.height div 2;
  Pen.Color:=clSilver;
  Pen.Width:=2;
  MoveTo(10, y0); LineTo(2*x0-10, y0); //ось Х
  Pen.Color:=clBlue;
  Pen.Width:=2;
  MoveTo(x0, 20);  LineTo(x0, 2*y0-20);//ось Y
  MoveTo(x0, 20);  LineTo(x0-5, 10);
  MoveTo(x0, 20);  LineTo(x0+5, 10);
  MoveTo(x0, 2*y0-20);  LineTo(x0+5,2*y0-10);
  MoveTo(x0, 2*y0-20);  LineTo(x0-5,2*y0-10);
  Pen.Color:=clBlack;
  Pen.Width:=1;
  //верхний луч
  MoveTo(x0-d,y0-h1); LineTo(x0-1,y0-h1);
  MoveTo(x0-5,y0-h1-3); LineTo(x0-1,y0-h1);
  MoveTo(x0-5,y0-h1+3); LineTo(x0,y0-h1);
  //луч через h и центр
  MoveTo(x0-d,y0-h1); LineTo(x0+d,y0+h1);
  MoveTo(x0+d,y0+h1); LineTo(x0+d-2,y0+h1-7);
  MoveTo(x0+d,y0+h1); LineTo(x0+d-7,y0+h1+1);
  //луч через F и верх
  pen.Style:=psDot;
  MoveTo(x0-f1,y0);LineTo(x0,y0-h1);
  pen.Style:=psSolid;
  MoveTo(x0,y0-h1);LineTo(x0+f1 div 4,y0-h1-h1 div 4);
  MoveTo(x0+f1 div 4,y0-h1-h1 div 4);
  LineTo(x0+f1 div 4-7,y0-h1-h1 div 4+2);
  MoveTo(x0+f1 div 4,y0-h1-h1 div 4);
  LineTo(x0+f1 div 4-2,y0-h1-h1 div 4+7);
  //положение фигуры
  MoveTo(x0-d+3,y0); LineTo(x0-d+3,y0-h1+6);
  MoveTo(x0-d-3,y0); LineTo(x0-d-3,y0-h1+6);
  MoveTo(x0-d+3,y0-h1+6); LineTo(x0-d+7,y0-h1+6);
  MoveTo(x0-d-3,y0-h1+6); LineTo(x0-d-7,y0-h1+6);
  MoveTo(x0-d-7,y0-h1+6); LineTo(x0-d,y0-h1);
  MoveTo(x0-d+7,y0-h1+6); LineTo(x0-d,y0-h1);
  MoveTo(x0-d-3,y0); LineTo(x0-d+3,y0);
  Brush.Color:=clBlue;
  FloodFill(x0-d,y0-5,clBlack, fsBorder);
  //отображение фигуры
  f2:=round(1/(1/d+1/f1));
  h2:=round(h1*f2/d);
  MoveTo(x0-f2+3,y0); LineTo(x0-f2+3,y0-h2+4);
  MoveTo(x0-f2-3,y0); LineTo(x0-f2-3,y0-h2+4);
  MoveTo(x0-f2+3,y0-h2+4); LineTo(x0-f2+5,y0-h2+4);
  MoveTo(x0-f2-3,y0-h2+4); LineTo(x0-f2-5,y0-h2+4);
  MoveTo(x0-f2+5,y0-h2+4); LineTo(x0-f2,y0-h2);
  MoveTo(x0-f2-5,y0-h2+4); LineTo(x0-f2,y0-h2);
  MoveTo(x0-f2-3,y0); LineTo(x0-f2+3,y0);
  Brush.Color:=clRed;
  FloodFill(x0-f2,y0-5,clBlack, fsBorder);
  ellipse(x0-f1-2,y0-2,x0-f1+2,y0+2);
  Brush.Color:=clYellow;
  ellipse(x0-f2-2,y0-2,x0-f2+2,y0+2);
  Brush.Style:=bsClear;
  textout(x0-d div 2,y0-h1-15,'d');
  textout(x0-f2,y0+10,'f');
  textout(x0-f1,y0+10,'F');
  textout(x0-d-20,y0-h1 div 2,'h');
  textout(x0-f2+10,y0-h2 div 2,'H');
 end;
 end
 else begin
 
 
//image2.Picture:=image1.Picture;
with image1.Canvas do
 begin
  x0:=image1.width div 2;
  y0:=image1.height div 2;
  Pen.Color:=clSilver;
  Pen.Width:=2;
  MoveTo(10, y0); LineTo(2*x0-10, y0); //ось Х
  Pen.Color:=clBlue;
  Pen.Width:=2;
  MoveTo(x0, 10);  LineTo(x0, 2*y0-10);//ось Y
  MoveTo(x0, 10);  LineTo(x0-5, 20);
  MoveTo(x0, 10);  LineTo(x0+5, 20);
  MoveTo(x0, 2*y0-10);  LineTo(x0+5,2*y0-20);
  MoveTo(x0, 2*y0-10);  LineTo(x0-5,2*y0-20);
  Pen.Color:=clBlack;
  Pen.Width:=1;
  //верхний луч
  MoveTo(x0-d,y0-h1); LineTo(x0-1,y0-h1);
  MoveTo(x0-5,y0-h1-3); LineTo(x0-1,y0-h1);
  MoveTo(x0-5,y0-h1+3); LineTo(x0,y0-h1);
  //луч через h и центр
  pen.Style:=psDot;
  MoveTo(x0-d,y0-h1); LineTo(x0+d,y0+h1);
  pen.Style:=psSolid;
  MoveTo(x0+d,y0+h1); LineTo(x0+d-5,y0+h1-6);
  MoveTo(x0+d,y0+h1); LineTo(x0+d-7,y0+h1+1);
  //луч через F и верх
  MoveTo(x0,y0-h1);LineTo(x0+3*f1,y0+2*h1);
  MoveTo(x0+3*f1,y0+2*h1);LineTo(x0+3*f1-2,y0+2*h1-7);
  MoveTo(x0+3*f1,y0+2*h1);LineTo(x0+3*f1-7,y0+2*h1-2);
  //положение фигуры
  MoveTo(x0-d+3,y0); LineTo(x0-d+3,y0-h1+6);
  MoveTo(x0-d-3,y0); LineTo(x0-d-3,y0-h1+6);
  MoveTo(x0-d+3,y0-h1+6); LineTo(x0-d+7,y0-h1+6);
  MoveTo(x0-d-3,y0-h1+6); LineTo(x0-d-7,y0-h1+6);
  MoveTo(x0-d-7,y0-h1+6); LineTo(x0-d,y0-h1);
  MoveTo(x0-d+7,y0-h1+6); LineTo(x0-d,y0-h1);
  MoveTo(x0-d-3,y0); LineTo(x0-d+3,y0);
  Brush.Color:=clBlue;
  FloodFill(x0-d,y0-5,clBlack, fsBorder);
  //отображение фигуры
  f2:=round(1/(1/f1-1/d));
  h2:=round(h1*f2/d);
  MoveTo(x0+f2+3,y0); LineTo(x0+f2+3,y0+h2-4);
  MoveTo(x0+f2-3,y0); LineTo(x0+f2-3,y0+h2-4);
  MoveTo(x0+f2+3,y0+h2-4); LineTo(x0+f2+5,y0+h2-4);
  MoveTo(x0+f2-3,y0+h2-4); LineTo(x0+f2-5,y0+h2-4);
  MoveTo(x0+f2+5,y0+h2-4); LineTo(x0+f2,y0+h2);
  MoveTo(x0+f2-5,y0+h2-4); LineTo(x0+f2,y0+h2);
  MoveTo(x0+f2-3,y0); LineTo(x0+f2+3,y0);
  Brush.Color:=clRed;
  FloodFill(x0+f2,y0+5,clBlack, fsBorder);
  ellipse(x0+f1-2,y0-2,x0+f1+2,y0+2);
  Brush.Color:=clYellow;
  ellipse(x0+f2-2,y0-2,x0+f2+2,y0+2);
  Brush.Style:=bsClear;
  textout(x0-d div 2,y0-h1-15,'d');
  textout(x0+f2,y0-15,'f');
  textout(x0+f1,y0-15,'F');
  textout(x0-d-20,y0-h1 div 2,'h');
  textout(x0+f2+10,y0+h2 div 2,'H');
 end;
 end
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var x0,y0,d,f2,h2:integer;
begin
 
end;
 
procedure TForm1.UpDown1Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
edit1.Text:=inttostr(upDown1.Position  );
end;
 
procedure TForm1.UpDown2Click(Sender: TObject; Button: TUDBtnType);
begin
edit2.Text:=inttostr(upDown1.Position  );
end;
 
procedure TForm1.UpDown3Click(Sender: TObject; Button: TUDBtnType);
begin
 edit3.Text:=inttostr(upDown1.Position  );
end;
 
end.
не устанавливается у меня ограничители UpDown2Click. и в собирающей линзе что то как то фокус ставлю больше 50 у меня линии уже не пересикаются

Добавлено через 33 секунды
помогите пожалуйста. а так вроде все хорошо с программой

Добавлено через 3 минуты
UpDown3Click. тоже не устанавливается
0
Почетный модератор
 Аватар для Puporev
64320 / 47616 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
05.12.2013, 13:57
Я просто нарисовал пример для фиксированных параметров. Дальше влазить в программу не буду, не знаю что вы хотите, да и знаний у меня по Делфи маловато.
Предлагаю вам создать новую тему, выложить там что есть и конкретно задать вопросы, а не так как здесь.

Добавлено через 9 минут
И еще, выкладывайте не код программы, а прикрепляйте в тему архив проекта, не все любят по коду проверять.
0
2 / 2 / 1
Регистрация: 24.10.2013
Сообщений: 200
05.12.2013, 14:04  [ТС]
Я не знаю как здесь приереплять архив((((((((
0
Почетный модератор
 Аватар для Puporev
64320 / 47616 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
05.12.2013, 14:05
Ссылка прямо под окном сообщений.
https://www.cyberforum.ru/abou... 03521.html
0
2 / 2 / 1
Регистрация: 24.10.2013
Сообщений: 200
05.12.2013, 14:17  [ТС]
загрузить то загрузила. а как отправить не получается
0
Почетный модератор
 Аватар для Puporev
64320 / 47616 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
05.12.2013, 14:27
Переходите в Расширенный режим. Жмете на кнопку в виде канцелярской скрепки, в открывшемся оке жми выберите файл, загрузить. Подождите пока архив загрузится, закройте это окно и все.
0
2 / 2 / 1
Регистрация: 24.10.2013
Сообщений: 200
05.12.2013, 14:29  [ТС]
посмотрите в моей новой теме. я так и сделала. ну я сама этого архива не вижу почему то
0
Почетный модератор
 Аватар для Puporev
64320 / 47616 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
05.12.2013, 14:31
Я тоже не вижу... Первый раз у меня такой клиент.
0
2 / 2 / 1
Регистрация: 24.10.2013
Сообщений: 200
05.12.2013, 14:39  [ТС]
ну я делаю все как вы говорите. ну ни как не загружается
0
Почетный модератор
 Аватар для Puporev
64320 / 47616 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
05.12.2013, 14:42
Значит не судьба....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.12.2013, 14:42

Как нарисовать линзу?
Здравствуйте. Подскажите как нарисовать линзу в borland c++

Подскажите как подобрать линзу
Ув. форумчане, подскажите новичку кто знает. Стоит такая задача: хочу собрать безконтактный выжигатель по дереву на основе источника света....

Ход лучей, падающих на плоско-выпуклую линзу
Свет падает на плоско-выпуклую линзу. Между линзой и плоской поверхностью находится воздушный слой. Степени преломления указаны на рисунке,...

На какое расстояние нужно отодвинуть третью линзу, чтоб лучи сходились на 135 мм от третей линзы
даны 3 собирательные линзы(расставленны в последовательном порядке) 1-я 3-я одинаковые и имеют фокусное расстояние 32 мм На первую...

Про прицелы. Или про линзу сложной формы
Занимаюсь стрельбой из блочного лука. В нем есть прицельное приспособление - на тетиве закреплена маленькая линза, далее через примерно...


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

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru