![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Цифровой_Aнгел |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Репутация: ![]() ![]() ![]() |
Залить каждый из внутренних кругов любыми стилем и цветом.помогите пожалуста=((
![]()
|
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Ну, допустим, залить-то не проблема (для этого достаточно после отрисовки круга вызвать SetFillStyle и FloodFill с координатами центра окружности и зеленым цветом в качестве границы). Но ведь у тебя программа вылетает при попытке выполнить вот эту строку:
Цитата SetAspectRatio(GetMaxX-a*x0 div 2,GetMaxY-b*y0); |
Цифровой_Aнгел |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Репутация: ![]() ![]() ![]() |
эм....всмысле вылетает? у меня всё нормально
![]() |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Значит, контроль границ отключен... Не надо этого делать. В настройках компилятора (Options -> Compiler) отметь все, что находится в группе Runtime Errors, нажми Ok, перекомпилируй и запусти программу.
Не отключай никогда контроль. Лучше чуть больше времени уделить отладке, чем думать, что у тебя все в порядке, а потом попробовать запустить программу на другом компьютере, где другие настройки, и она начнет вылетать. Добавлено через 4 мин. А вот тебе и доказательство того, что не надо закрывать глаза на ошибку, а надо ее исправлять. Берем компилятор FPC, отключаем контроль границ и контроль переполнения Integer-а, компилируем и запускаем программу. Думаешь, я вижу окружности? Ни разу. Вот, что я вижу (хотя, если закомментировать SetAspectRatio - то все в порядке, появляются окружности): Эскизы прикрепленных изображений ![]() |
Цифровой_Aнгел |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Репутация: ![]() ![]() ![]() |
ну у кого окружности, а у кого и эллипсы :D
а контроль я не отключала. подскажи, пожалуйста, что с этим делать? ![]() заливка есть, а вот что с коэффициентом сжатия делать? =(( Сообщение отредактировано: Цифровой_Aнгел - 28.03.2010 12:45 |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата а контроль я не отключала. А он по умолчанию отключен (без него программы меньше по размеру и более быстрые получаются). Так вот включи контроль, и никогда, пока программа не станет полностью работоспособной, не отключай ![]() Цитата что с этим делать? Обходиться без SetAcpectRatio:Program Circle3;Никаких ошибок, никаких эллипсов... Странно, правда? Рисуешь Circle (окружность) - получаешь эллипс. Рисуешь FillEllipse (заполненный эллипс) - получаешь окружность ![]() |
Цифровой_Aнгел |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Репутация: ![]() ![]() ![]() |
Цитата Странно, правда? Рисуешь Circle (окружность) - получаешь эллипс. не странно ![]() и получились...эллипсы ^_^ |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Ну, если тебе надо обеспечить окружности, а не эллипсы только под Турбо-Паскалем, то:
x0 := GetMaxX div 2;Это отработало. Но тогда у тебя будут проблемы с другими компиляторами... |
Цифровой_Aнгел |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Репутация: ![]() ![]() ![]() |
Всё равно эллипсы
![]() |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Цитата Всё равно эллипсы А вот теперь - НЕ ВЕРЮ! (С)... Проверено на 4-х машинах, везде окружности. У тебя - эллипсы? Так не бывает. Рассказывай, какой монитор, и какой, собственно, компилятор. Запускай в режиме отладки и показывай, чему равно A и B после GetAspectRatio... Что возвращает GetMaxX, GetMaxY? Какая картинка получается? Давай больше информации. Это в конце концов что, мне надо?Вот чего рисует Турбо Паскаль 7.0: Эскизы прикрепленных изображений ![]() |
Nike0 |
![]()
Сообщение
#11
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 61 Пол: Мужской Реальное имя: Илья Репутация: ![]() ![]() ![]() |
Всё равно эллипсы ![]() хм, если честно, ради интереса затестил, вроде как эллипсы) Эскизы прикрепленных изображений ![]() |
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
Цитата хм, если честно, ради интереса затестил, вроде как эллипсы) Посмотри выше, я прилепил скриншот... Это что, эллипсы? И вот так - ВЕЗДЕ, на всех доступных мне машинах.Стоп... У тебя - НЕ Турбо Паскаль, а какой-то 32-битный. Я предупреждал, что с ним что будут проблемы... Показывай, что выдает Турбо. |
Unconnected |
![]()
Сообщение
#13
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Вот это:
uses graph; у меня на TP7 выглядит так (монитор ЭЛТ 17 дюймов): Сообщение отредактировано: Unconnected - 28.03.2010 14:36 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
Еще раз: Чему равны значения A и B после вызова GetAspectRatio, кто-нибудь мне может сказать?
У меня всегда выдает (10000:10000), то есть, "сжимать" картинку, используя полученные таким образом коэффициенты - бесполезно, соотношение будет таким же, как и без "сжатия", поэтому я попробовал заменить GetAspectRatio на конкретные значения GetMaxX и GetMaxY. Кстати, создается впечатление, что SetAspectRatio вообще ни к чему не приводит, пытался делать GetAspectRatio(a,b);- картинка осталась прежней... |
Unconnected |
![]()
Сообщение
#15
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
В последнем коде нету GetAspectRatio. Но вот после GetMaxX и GetMaxY переменные A и B равны 639 и 479 соответственно. Или надо было вставить GetAspectRatio?)
Сообщение отредактировано: Unconnected - 28.03.2010 15:02 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#16
|
Гость ![]() |
Unconnected
Попробуй добавить GetAspectRatio... Все, что интересует - это значения A и B |
Unconnected |
![]()
Сообщение
#17
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
По 10000 тоже.
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Цифровой_Aнгел |
![]()
Сообщение
#18
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Репутация: ![]() ![]() ![]() |
не знаю чем повлияло создание ехе-шника, но после этого эллипсы превратились в круги
![]() Program Circle3; volvo, большое спасибо ![]() Сообщение отредактировано: Цифровой_Aнгел - 28.03.2010 15:51 |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:54 |