powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Матем. вопрос. Расчет угла противолежащего катета.
44 сообщений из 44, показаны все 2 страниц
Матем. вопрос. Расчет угла противолежащего катета.
    #35924371
Dumfl_ME
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем, прямоугольный треугольник.
Известны длины катетов.
Как найти угол n.?!
см. рис 1.

Думаю тут есть несколько способов через ctg или через теорему Пифагора(sin)
Но мозгов не хватает.
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35924403
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dumfl_ME,

arctg(b/a)
что-то великое ваяете?
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35924427
Dumfl_MEВ общем, прямоугольный треугольник.
Известны длины катетов.
Как найти угол n.?!
см. рис 1.

Думаю тут есть несколько способов через ctg или через теорему Пифагора(sin)
Но мозгов не хватает.
Несколько способов?
Вообще-то только один: через тангенс или котангенс (tg(alfa) = 1/ctg(alfa))
Тангенс находится, в соответствии со школьным курсом тригонометрии, как отношение противолежащего катета к прилежащему, т.е. по вашему рисунку, tg(n) = b/a, а угол n, соответственно, как arctg(b/a)
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35924741
ss18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С...кийDumfl_MEВ общем, прямоугольный треугольник.
Известны длины катетов.
Как найти угол n.?!
см. рис 1.

Думаю тут есть несколько способов через ctg или через теорему Пифагора(sin)
Но мозгов не хватает.
Несколько способов?
Вообще-то только один: через тангенс или котангенс (tg(alfa) = 1/ctg(alfa))
Тангенс находится, в соответствии со школьным курсом тригонометрии, как отношение противолежащего катета к прилежащему, т.е. по вашему рисунку, tg(n) = b/a, а угол n, соответственно, как arctg(b/a)

А чем арккосинус и арксинус не подходят ?
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35924792
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ss18 , потому как

автор Синус - одна из тригонометрических функций, обозначется sin. Синусом угла в треугольнике называют отношение катета, лежащего против этого угла (противолежащего катета), к гипотенузе.
Взято тут ...

Если вспомнить условие автора значения гипотенузы у нас нет.
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35924851
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaзначения гипотенузы у нас нет. не печальтесь, как известно ещё со времён пифагора, квадрат гипотенузы - есть сумма квадратов катетов, так что, считайте - есть ;-)) весь вопрос в количестве необходимых вычислений
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35924867
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. лучше начать рыть подземный ход на чердак?
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35924903
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaТ.е. лучше начать рыть подземный ход на чердак? зато весело, и все заняты
а сколько кода можно родить! пооптимизировать его потом, специальный аллокатор написать, юнит-тесты... неделя работы, а то и на две можно растянуть не то, что библиотечную функцию подставил - и всё... скукота
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925141
Dumfl_ME
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то у меня вообще теперь каша в голове.

Пишу я на дельфи.
два вопроса.
1) когда делаю согласно вашим формулам:
ANGLE:=(ArcCot(B/A))
получаются уж больно маленькие цифры. (0,5121... 0,4456... 0,7961...)
На угол что-то не похоже.

2) Когда начинаю двигать току по направлению к углу(к нормальному) вообще какая-то галиматья

x:= x0 + speed * cos(angle) * time;
y:= y0 - speed * sin(angle) * time;

экспериментирую. ставлю угол 90 двигается как то под углом примерно 75... ставлю 91... вапще в другую сторону... как понимать?!
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925268
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dumfl_ME
Пишу я на дельфи.
два вопроса.
1) когда делаю согласно вашим формулам:
ANGLE:=(ArcCot(B/A))
получаются уж больно маленькие цифры. (0,5121... 0,4456... 0,7961...)
На угол что-то не похоже.

А ты про радианы что-нибудь слыхал?
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925272
Dumfl_ME
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Виноват понял...
не правильная система координат.

x:= x0 + speed * cos(angle*PI/180) * time;
y:= y0 - speed * sin(angle*PI/180) * time;

Но с АркКоТангенсом ситуация по прежнему непонятна... :(
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925286
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dumfl_MEНо с АркКоТангенсом ситуация по прежнему непонятна... :(
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925299
Dumfl_ME,

Вы математику в школе учили?
Тангенс = отношение противолежащего катета к прилежащему; котангенс наоборот, прилежащего к противолежащему... :)
Вам писали: Arctg(b/a), а вы находите arcctg(b/a)...
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925308
<угол в градусах> = arctg (b/a) / PI * 180
Для большей безопасности в программах лучше пользоваться функцией atan2 (не знаю, есть ли
она в Delphi):
<угол в градусах> = atan2(a,b) / PI * 180 ( или atan2(b,a) - не помню)
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925309
Dumfl_ME
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonDumfl_ME
Пишу я на дельфи.
два вопроса.
1) когда делаю согласно вашим формулам:
ANGLE:=(ArcCot(B/A))
получаются уж больно маленькие цифры. (0,5121... 0,4456... 0,7961...)
На угол что-то не похоже.

А ты про радианы что-нибудь слыхал?

...слыхал
ANGLE:=(ArcCot(B/A*PI/180))
и что?! теперь другую погоду показывает (1,4546... 1,5646... 1,2791...)
?!?!
что не верно?
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925322
Dumfl_MEmaytonDumfl_ME
Пишу я на дельфи.
два вопроса.
1) когда делаю согласно вашим формулам:
ANGLE:=(ArcCot(B/A))
получаются уж больно маленькие цифры. (0,5121... 0,4456... 0,7961...)
На угол что-то не похоже.

А ты про радианы что-нибудь слыхал?

...слыхал
ANGLE:=(ArcCot(B/A*PI/180))
и что?! теперь другую погоду показывает (1,4546... 1,5646... 1,2791...)
?!?!
что не верно?
нет, неверно!
надо:
ANGLE:=(ArcCot(B/A)*PI/180)

Такое ощущение, что школьник-двоечник пытается программы писать...
Ну так есть же справочники по математике (для получения формул) + хелпы по языкам программирования (для получения сведений о том, в каких единицах (градусах или радианах) выдается результат функции арккотангенс...)
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925323
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dumfl_MEmaytonDumfl_ME
Пишу я на дельфи.
два вопроса.
1) когда делаю согласно вашим формулам:
ANGLE:=(ArcCot(B/A))
получаются уж больно маленькие цифры. (0,5121... 0,4456... 0,7961...)
На угол что-то не похоже.

А ты про радианы что-нибудь слыхал?

...слыхал
ANGLE:=(ArcCot(B/A*PI/180))
и что?! теперь другую погоду показывает (1,4546... 1,5646... 1,2791...)
?!?!
что не верно?
показывает радианы, а не градусы
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925348
Станислав С...кийDumfl_MEmaytonDumfl_ME
Пишу я на дельфи.
два вопроса.
1) когда делаю согласно вашим формулам:
ANGLE:=(ArcCot(B/A))
получаются уж больно маленькие цифры. (0,5121... 0,4456... 0,7961...)
На угол что-то не похоже.

А ты про радианы что-нибудь слыхал?

...слыхал
ANGLE:=(ArcCot(B/A*PI/180))
и что?! теперь другую погоду показывает (1,4546... 1,5646... 1,2791...)
?!?!
что не верно?
нет, неверно!
надо:
ANGLE:=(ArcCot(B/A)*PI/180)

Такое ощущение, что школьник-двоечник пытается программы писать...
Ну так есть же справочники по математике (для получения формул) + хелпы по языкам программирования (для получения сведений о том, в каких единицах (градусах или радианах) выдается результат функции арккотангенс...)
Сам же и запутался с переводом из радиан в градусы...
надо:
ANGLE:=(ArcCot(B/A)/PI)*180
Но такое ощущение, что и синусу тоже нужны радианы в качестве параметра. Т.е. не нужно ничего никуда переводить!!!
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925363
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В этом форуме есть хоть один человек, который может открыть справочник Делфи и посмотреть????
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925372
Dumfl_ME
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа супер умные и начитанные...
помогите двоечнику школьнику второгодке... Точки двигаются похоже но всё равно не туда :(

Итак вниманию супер интеллектов... кичащихся знаниями в области математики:

движемся так:
x:= x0 + speed * cos(angle*PI/180) * time;
y := y0 - speed * sin(angle*PI/180) * time;
Определяем угол так:
angle:=(ArcTan2(B,A)/PI*180);

Где истина...?!
не идёт туда. :(

Все желающие поржать, и с острить почва вам дана. :)
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925423
Dumfl_ME
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonВ этом форуме есть хоть один человек, который может открыть справочник Делфи и посмотреть????
Согласно вашей логике, этот форум не нужен вовсе. Достаточно книжек...
Вопрос задан не по Дельфи а по математике, никто не заставляет Вас дорогой на него отвечать, если Вы считаете что это ниже вашего достоинства отвечать на глупые вопросы, то зачем отвечаете грозными словами RTFM?
Человек не может в чем то разобраться... пытается найти информацию, идёт за помощью на форум, если вы не можете или не хотите оказать помощь то нет необходимости писать о том что вы не хотите этого делать делая вид что всё знаете.

Здесь не любят таких как я да?!
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925486
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dumfl_ME,

зарегистрируйся в форуме.
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925501
avb1003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dumfl_ME
...
Здесь не любят таких как я да?!Не совсем так. Просто люди с такими затруднениями обычно умеют зарабатывают деньги
не связанным с программированием способом,подобными "подробностями" не интересуются
и выступают на подобных форумах не в качестве коллег (даже потенциальных, будущих или виртуальных), а в качестве клиентов.
И тогда их, как правило, "любят". По крайней мере, воспринимают как адекватных.
Потом, в конце-концов, Вам десять раз уже все объяснили. Если все равно не понятно,
но все-таки хочется, то, наверное, нужно подумать о приходящем репетиторе и т.д.
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925506
АС_Пушкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dumfl_MEГоспода супер умные и начитанные...
помогите двоечнику школьнику второгодке... Точки двигаются похоже но всё равно не туда :(

Итак вниманию супер интеллектов... кичащихся знаниями в области математики:

движемся так:
x:= x0 + speed * cos(angle*PI/180) * time;
y := y0 - speed * sin(angle*PI/180) * time;
Определяем угол так:
angle:=(ArcTan2(B,A)/PI*180);

Где истина...?!
не идёт туда. :(

Все желающие поржать, и с острить почва вам дана. :)

Какое движение тут моделируется? По этой формуле при постоянных A и B материальная точка будет двигаться прямолинейно и равномерно, потому что нет ускорения. Почему во втором уравнении минус? Должен быть всегда плюс. Иначе у Вас задан неправильный угол.
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925509
Dumfl_ME,
а время может в скобках надо записывать, типа
speed*cos(angle * PI / 180 * time) - тогда движение больше по окружности, а если как у тебя
записано - так больше по радиусу.
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925527
x:= x0 + speed * cos(angle*180/PI) * time;
y := y0 - speed * sin(angle*180/PI) * time; - еще вариант
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925535
Dumfl_ME,
x:= x0 + speed * cos(angle*180/PI) * time;
y := y0 - speed * sin(angle*180/PI) * time; - еще вариант
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35925761
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dumfl_MEmaytonВ этом форуме есть хоть один человек, который может открыть справочник Делфи и посмотреть????
Согласно вашей логике, этот форум не нужен вовсе. Достаточно книжек...
Вопрос задан не по Дельфи а по математике, никто не заставляет Вас дорогой на него отвечать, если Вы считаете что это ниже вашего достоинства отвечать на глупые вопросы, то зачем отвечаете грозными словами RTFM?
Человек не может в чем то разобраться... пытается найти информацию, идёт за помощью на форум, если вы не можете или не хотите оказать помощь то нет необходимости писать о том что вы не хотите этого делать делая вид что всё знаете.

Здесь не любят таких как я да?!

Сформулируй чёткую задачу, что надо сделать... Просто лично я в твоих мыслях путаюсь :) На вопрос как найти угол тебе уже ответили в самом начале, а далее задача стала непонятной? Куда надо сдвинуть точку? По какой траектории? типа вдоль гипотенузы (увеличивая/уменьшая гипотенузу)?
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35926181
ss18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa ss18 , потому как

автор Синус - одна из тригонометрических функций, обозначется sin. Синусом угла в треугольнике называют отношение катета, лежащего против этого угла (противолежащего катета), к гипотенузе.
Взято тут ...

Если вспомнить условие автора значения гипотенузы у нас нет.

Как это нет???? а куда она делать из прямоугольного треугольника ????
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35941142
Serhio1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А это всё в аксиомах еклидовой геометрии нужно считать ?
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35966395
Dumfl_ME
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Короче... вот что я хотел сделать. Сделал в тот же день, но сейчас нарвался на свою тему и решил выложить что получилось.
Спасибо всем врединам за участие:
Проблема была при расчете полёта не взорвавшегося снаряда.
Можете ещё разок обкакать код :)

На форму нужно кинуть paintbox и timer.

Код: plaintext
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.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
 unit  Unit1;

 interface 

 uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

 type 
  TPix =  record 
    x:  array [ 1 .. 255 ]  of  real;
    y:  array [ 1 .. 255 ]  of  real;
    s:  array [ 1 .. 255 ]  of  real;
    a:  array [ 1 .. 255 ]  of  integer;
   end ;

  TRPix =  record 
    x:  array [ 1 .. 4 ]  of  Real;
    y:  array [ 1 .. 4 ]  of  Real;
    x0:  array [ 1 .. 4 ]  of  Real;
    y0:  array [ 1 .. 4 ]  of  Real;
    r:  array [ 1 .. 4 ]  of  Real;
    a:  array [ 1 .. 4 ]  of  Integer;
    t:  array [ 1 .. 4 ]  of  Real;
   end ;

  TForm1 =  class (TForm)
    Timer2: TTimer;
    PaintBox1: TPaintBox;
     procedure  FormKeyDown(Sender: TObject;  var  Key: Word;
      Shift: TShiftState);
     procedure  Timer2Timer(Sender: TObject);
     procedure  FormPaint(Sender: TObject);
   private 
     { Private declarations } 
     procedure  RocketStart(ni: SmallInt);
   public 
     { Public declarations } 
   end ;

 var 
  Form1: TForm1;
  buff: Tbitmap;

  Sb:  record 
    boom:  array [ 1 .. 10 ]  of  Boolean;
    color:  array [ 1 .. 10 ]  of  TColor;
    elem:  array [ 1 .. 10 ]  of  TPix;
    relem:  array [ 1 .. 10 ]  of  TRPix;
    time:  array [ 1 .. 10 ]  of  Real;
    x0:  array [ 1 .. 10 ]  of  Real;
    y0:  array [ 1 .. 10 ]  of  real;
    rx:  array [ 1 .. 10 ]  of  real;
    ry:  array [ 1 .. 10 ]  of  Real;
    rx0:  array [ 1 .. 10 ]  of  real;
    ry0:  array [ 1 .. 10 ]  of  Real;
    ra:  array [ 1 .. 10 ]  of  real;
    tarx:  array [ 1 .. 10 ]  of  Real;
    tary:  array [ 1 .. 10 ]  of  real;
    allout:  array [ 1 .. 10 ]  of  Boolean;
   end ;

  i, j: integer;  //cycle 
  fcolor: TColor;
  colorchik: SmallInt;
  nrelem: Integer;

 implementation 

 uses  Math;

 {$R *.dfm} 
 const 
  colp =  255 ;
  colv =  10 ;
  colRE =  4 ;
  TimeStep =  0 . 7 ;
  G =  0 . 2 ;
  RSpeed =  5 ;
  RESpeed =  0 . 5 ;
  txt = 'Hello world!';

 procedure  TForm1.FormKeyDown(Sender: TObject;  var  Key: Word;
  Shift: TShiftState);
 begin 
   if  key =  27   then  close;
 end ;

 procedure  TForm1.Timer2Timer(Sender: TObject);
 var  th, tw: Integer;
  kh: Integer;  //cycle 
 begin 
  buff.Canvas.Brush.Color := clBlack;
  buff.Canvas.Pen.Color := clBlack;
  buff.Canvas.Rectangle( 0 ,  0 , buff.Width, buff.Height);

  buff.Canvas.Font.Color := fcolor;
  buff.Canvas.Font.Size :=  76 ;
  buff.Canvas.Font.Name := 'Monotype Corsiva';
   if  fcolor =  0   then  colorchik :=  1 ;
   if  fcolor =  255   then  colorchik := - 1 ;
  TW := buff.Canvas.TextWidth(txt);
  TH := buff.Canvas.TextHeight(txt);
  buff.Canvas.TextOut(Round(buff.Width /  2 ) - round(tw /  2 ), Round(buff.Height /  2 ) - round(th /  2 ), txt);
  fcolor := fcolor + colorchik;

   for  i :=  1   to  colv  do 
   begin 
     if  Sb.boom  then 
     begin   [i]//BOOM! 
      Sb.allout := true;
       for  j :=  1   to  colp  do 
       begin 
         begin 
          Sb.elem[i].x[j] := Sb.x0[i] + Sb.elem[i].s[j] * cos(Sb.elem[i].a[j] * PI /  180 ) * Sb.time[i];
          Sb.elem[i].y[j] := Sb.y0[i] - Sb.elem[i].s[j] * sin(Sb.elem[i].a[j] * PI /  180 ) * Sb.time[i] + G * Sb.time[i] * Sb.time[i] /  2 ;
          buff.Canvas.Pen.Color := SB.color[i];
          buff.Canvas.Brush.Color := SB.color[i];
          buff.Canvas.Ellipse(round(Sb.elem[i].x[j] -  2 ), round(Sb.elem[i].y[j] -  2 ), round(Sb.elem[i].x[j] +  2 ), round(Sb.elem[i].y[j] +  2 ));
           if  (Sb.elem[i].y[j] < buff.Height)  then 
            Sb.allout[i] := false;
         end ;
       end ;
       if  sb.allout[i]  then 
        RocketStart(i);
     end 
     else 
     begin   [i]//ROCKET 

      Sb.rx := Sb.rx0[i] + RSpeed * cos(Sb.ra[i] * PI /  180 ) * Sb.time[i];
      Sb.ry[i] := Sb.ry0[i] - RSpeed * sin(Sb.ra[i] * PI /  180 ) * Sb.time[i];
       if  sb.ry[i] <= sb.tary[i]  then 
       begin 
        Sb.x0[i] := sb.tarx[i];
        Sb.y0[i] := sb.tary[i];
        Sb.time[i] :=  0 ;
        Sb.boom[i] := true;
       end ;
      buff.Canvas.Pen.Color := SB.color[i];
      buff.Canvas.Brush.Color := SB.color[i];
      buff.Canvas.Ellipse(round(Sb.rx[i] -  3 ), round(Sb.ry[i] -  3 ), round(Sb.rx[i] +  3 ), round(Sb.ry[i] +  3 ));

       [i]//--------------------------------------------------------------------- 
       for  kh :=  1   to  colRE  do   //ELEM 
       begin 
         if  sb.relem.r[kh] <  0   then 
         begin 
          Sb.relem[i].r[kh] :=  6 ;
          Sb.relem[i].t[kh] :=  0 ;
          Sb.relem[i].x0[kh] := Sb.rx[i];
          Sb.relem[i].y0[kh] := Sb.ry[i];
          Sb.relem[i].a[kh] := Round(SB.ra[i]) +  180  + random( 180 ) -  90 ;
         end ;

        Sb.relem[i].x[kh] := Sb.relem[i].x0[kh] + RESpeed * cos(Sb.relem[i].a[kh] * PI /  180 ) * Sb.relem[i].t[kh];
        Sb.relem[i].y[kh] := Sb.relem[i].y0[kh] - RESpeed * sin(Sb.relem[i].a[kh] * PI /  180 ) * Sb.relem[i].t[kh];
        sb.relem[i].r[kh] := sb.relem[i].r[kh] -  0 . 1 ;
        buff.Canvas.Ellipse(round(Sb.relem[i].x[kh] - Round(Sb.relem[i].r[kh] /  2 )),
          round(Sb.relem[i].y[kh] - Round(Sb.relem[i].r[kh] /  2 )),
          round(Sb.relem[i].x[kh] + Round(Sb.relem[i].r[kh] /  2 )),
          round(Sb.relem[i].y[kh] + Round(Sb.relem[i].r[kh] /  2 )));
        Sb.relem[i].t[kh] := Sb.relem[i].t[kh] + TimeStep;
       end ;
       [i]//--------------------------------------------------------------------- 
     end ;
    Sb.time[i] := Sb.time[i] + TimeStep;
   end ;

  BitBlt(PaintBox1.Canvas.Handle,  0 ,  0 , PaintBox1.Width, PaintBox1.Height, buff.Canvas.Handle,  0 ,  0 , SRCCOPY);
 end ;

 procedure  TForm1.RocketStart(ni: SmallInt);
 var 
  aTR, bTR: Integer;
  Ji: Integer;
 begin 
   for  ji :=  1   to  colp  do 
   begin 
    Sb.elem[ni].a[ji] := Random( 359 );
    Sb.elem[ni].s[ji] := Random( 1000 ) /  100  +  1 ;
   end ;
  Sb.rx0[ni] := Random(buff.Width) +  1 ;
  Sb.ry0[ni] := buff.Height;
  Sb.rx[ni] := SB.rx0[ni];
  Sb.ry[ni] := SB.ry0[ni];
  Sb.tarx[ni] := Random(buff.Width) +  1 ;
  Sb.tary[ni] := Random(buff.Height - round(buff.Height /  3 )) + round(buff.Height /  3 ) - round(buff.Height /  5 );
  aTR := (round(Sb.tarx[ni] - Sb.rx0[ni]));
  bTR := (round(Sb.ry0[ni] - Sb.tary[ni]));
  Sb.ra[ni] := (ArcTan2(btr, atr) / PI *  180 );

   for  Ji :=  1   to  colRE  do 
   begin 
    Sb.relem[ni].a[ji] := Round(SB.ra[ni]) +  180  + random( 180 ) -  90 ;
    Sb.relem[ni].r[ji] := Random( 5 ) +  1 ;
    Sb.relem[ni].t[ji] :=  0 ;
    Sb.relem[ni].x0[ji] := Sb.rx0[ni];
    Sb.relem[ni].y0[ji] := Sb.ry0[ni];
   end ;

  Sb.boom[ni] := false;
  Sb.allout[ni] := false;
  Sb.color[ni] := Random( 6 ) +  1 ;
   case  Sb.color[ni]  of 
     1 : Sb.color[ni] := clRed;
     2 : Sb.color[ni] := clYellow;
     3 : Sb.color[ni] := clLime;
     4 : Sb.color[ni] := clPurple;
     5 : Sb.color[ni] := clBlue;
     6 : Sb.color[ni] := clAqua;
   end ;
  Sb.time[ni] :=  0 ;
 end ;

 procedure  TForm1.FormPaint(Sender: TObject);
 begin 
  PaintBox1.Left :=  0 ;
  PaintBox1.Top :=  0 ;
  PaintBox1.Width := form1.Width;
  PaintBox1.Height := form1.Height;
  buff := TBitmap.Create;
  buff.Width := PaintBox1.Width;
  buff.Height := PaintBox1.Height;
  buff.PixelFormat := pf32bit;
  fcolor :=  0 ;
  randomize;
   for  i :=  1   to  colv  do 
   begin 
    RocketStart(i);
   end ;
  Timer2.Enabled := true;
 end ;

 end .
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35966603
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первая какашка в тебя:

Обилие статических массивов в структурах. Обычно так не делают. Надо создавать массив из однотипных структур.
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35966653
Dumfl_ME
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonПервая какашка в тебя:

Обилие статических массивов в структурах. Обычно так не делают. Надо создавать массив из однотипных структур.

Не до конца понимаю о чем вы говорите.
Точнее я наверное понял идею того что ограничения в массивах это не есть гуд. Вы предлагаете напрямую выделять память?
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35966724
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясню. Ты пишешь.

Код: plaintext
1.
2.
3.
4.
5.
TPix = record
    x: array[ 1 .. 255 ] of real;
    y: array[ 1 .. 255 ] of real;
    s: array[ 1 .. 255 ] of real;
    a: array[ 1 .. 255 ] of integer;
  end;

Создал 4 вектора по 255 элементов. Очевидно для моделирования движения множества частиц или хр. знает еще чего-то.

Но я-бы сделал так.

Код: plaintext
1.
2.
3.
4.
5.
TPix = record
    x: real;
    y: real;
    s: real;
    a: integer;
  end;

И где-нибудь в коде создал-бы статический (или лучше динамический) массив этих частиц.

Я не специалист в Delphi, но недеюсь что паттерны правильного проектирования, которые я использую в C++/Java/C# можно переносить и сюда.
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #35996312
Jester_Skovorodker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dumfl_MEКороче... вот что я хотел сделать. Сделал в тот же день, но сейчас нарвался на свою тему и решил выложить что получилось.
Спасибо всем врединам за участие:
Проблема была при расчете полёта не взорвавшегося снаряда.
Можете ещё разок обкакать код :)

На форму нужно кинуть paintbox и timer.


Красиво, молодец!
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #36632792
Sergey81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы забыли вспомнить область определения тангенса и всякое другое:
var
x, y : real;
alpha : real;
begin
read(x, y);
if x=0 then
if y>0 then alpha:=pi / 2
else if y<0 then alpha:= 3 * pi / 2
else write(‘угол неопределен’) {для точки (0,0) нет полярного угла}
else begin
alpha:=arctan(y/x);
if x<0 then alpha := alpha + pi; {проверим, находится ли угол в левой части координатной плоскости}

if alpha<0 then alpha := alpha + 2 * pi; {обеспечим чтобы найденный угол лежал в интервале (0; 2π)}
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #36632795
Sergey81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
var
x, y : real;
alpha : real;
begin
read(x, y);
if x=0 then
if y>0 then alpha:=pi / 2
else if y<0 then alpha:= 3 * pi / 2
else write(‘угол неопределен’) {для точки (0,0) нет полярного угла}
else begin
alpha:=arctan(y/x);
if x<0 then alpha := alpha + pi; {проверим, находится ли угол в левой части координатной плоскости}
if alpha<0 then alpha := alpha + 2 * pi; {обеспечим чтобы найденный угол лежал в интервале (0; 2π)}
end;
end.
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #36632960
Dumfl_ME
Человек не может в чем то разобраться... пытается найти информацию, идёт за помощью на форум, если вы не можете или не хотите оказать помощь то нет необходимости писать о том что вы не хотите этого делать делая вид что всё знаете.

Хотим оказать помощь, но не можем, тк. тригонометрии учат малых детей в школе, а мы не учителя. Ты хочешь написать программу, не зная ОСНОВ математики. Там нет ничего сложного, бери учебники, справочники и изучай. Нельзя написать роман не выучив азбуку.

Dumfl_ME
x:= x0 + speed * cos(angle*PI/180) * time;
y:= y0 - speed * sin(angle*PI/180) * time;

Сдается мне, что ты собрался писать игру
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #36633323
Gys
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Gys
Гость
ТС это наверно один из тех кто говорит математика программистам не нужна)))
п.с. хотя математика за школьный курс нужна всем.
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #36633558
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gysхотя математика за школьный курс нужна всем.хотя бы для того, чтобы посмотреть на дату исходного сообщения и сопоставить с нынешней
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #36635088
Gys
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Gys
Гость
egorychGysхотя математика за школьный курс нужна всем.хотя бы для того, чтобы посмотреть на дату исходного сообщения и сопоставить с нынешней

1.Я видел дату до написания свого поста
2.Не я поднял топик
3.Я не обращался к ТС...а выступил в роле голоса за кадром для всех смотрящих эту тему(т.к. её уже подняли, смотреть её будут другие).
Так что садитесь два! =)
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #36635137
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GysТак что садитесь два! =)да я и не вставал, не переживайте =)
ЗЫ анонимус какой обидчивый нынче пошёл, право ))
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #36635270
egorychпосмотреть на дату исходного сообщения и сопоставить с нынешней
А и то правда. Из 19 мая вычесть 10 апреля. Это будет... Будет это... Ровно 1 мес и 9 дней. А из 2010 года вычесть 9-й, это получится... Получается у нас, 2001 год 1 месяц и 9 дней. Много.
...
Рейтинг: 0 / 0
Матем. вопрос. Расчет угла противолежащего катета.
    #36635288
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Унрегистеред, а что вы хочите, это очень древний форум. бывают сообщения и 9го года, и 4го, совсем в архивах, небось, сохранились ещё темы, поднятые ещё до рождества Христова.
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Матем. вопрос. Расчет угла противолежащего катета.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]