![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Kolt |
![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Помогите сделать так, чтоб график был нормальный(замкнутый), а не точечный вот код
От n зависит количество лепестков Прикрепленные файлы ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Вот так попробуй:
![]() Кстати, обрати внимание, ты работал не с градусами, а с радианами ! (Sin/Cos вычисляют функцию аргумента, заданного именно в радианах). Я перевел это в градусы... Еще одно добавление - переменная _T, показывающая на сколько частей делить каждый градус при вычислении функций (она используется потом и при расчетах тоже)... Чем больше значение _T, тем ближе точки графика. НО: одновременно с этим во столько же раз увеличивается используемый буфер, и если ты задашь _T больше, чем (65520 div (360 * SizeOf(Real))), т. е. больше 30, то твоя программа перестанет компилироваться в Турбо Паскале, ибо там размер массива ограничен размером сегмента... |
Kolt |
![]()
Сообщение
#3
|
![]() Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Спасибо так гораздо красивее
![]() Цитата НО: одновременно с этим во столько же раз увеличивается используемый буфер, и если ты задашь _T больше, чем (65520 div (360 * SizeOf(Real))), т. е. больше 30, то твоя программа перестанет компилироваться в Турбо Паскале, ибо там размер массива ограничен размером сегмента... У меня уже при 15 тормозит Сообщение отредактировано: Kolt - 9.11.2006 0:51 |
Kolt |
![]()
Сообщение
#4
|
![]() Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Ещё вопросик, как можно найти свободное место над графиком и подписать его мол y=cos(n,x)
|
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата У меня уже при 15 тормозит Ну, само собой, у тебя же 2 массива (A и B), а я посчитал для одного...Цитата как можно найти свободное место над графиком Что значит "найти"? Ты хочешь программно искать? |
Kolt |
![]()
Сообщение
#6
|
![]() Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Цитата Что значит "найти"? Ты хочешь программно искать? Да чтобы программа сама нашла место над линией графика и подписала его, чтобы подпись не перекрывала сам график. Есть какие-нибудь идеи? |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Есть, конечно... Высоту подписи ты знаешь (TextHeight('y=cos(n,x)')), аналогично же находится и ширина подписи, правда? Вот и проходи по линии высотой Height, отстоящей на Width символов от левой (или правой) границы поля, и проверяй, есть там пикселы с цветом, равным цвету графика, или нет... Если нет - сдвигайся еще правее/левее, и опять проверяй... Можешь двигаться и по диагонали, и по вертикали, выбирай, что тебе удобнее... Как только нашел пиксел красного цвета - возвращаешься на 1 шаг назад, и выводишь надпись... Идея понятна?
|
Kolt |
![]()
Сообщение
#8
|
![]() Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Да, идея понятна, попробую реализовать, но может получится так что надпись выйдет за рамку графика или пересечет её, тогда нужно пробег уменьшить что ли на "минус" ширину/высоту справа, или "плюс" слева
|
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 20:41 |