Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
10.06.2008, 09:18
|
|
Временная регистрация
Регистрация: 29.09.2006
Сообщений: 64
Сказал спасибо: 0
Сказали Спасибо 23 раз(а) в 1 сообщении
|
Сообщение от GLVlad
|
Цитата:
|
Не все так просто, для окружности с центром не в центре координат (извиняюсь за каламбур) уравнение примет вид (Xc-X)^2 + (Yc-Y)^2=R^2 Xc и Yc координаты центра окружности. Теперь получаем, что у нас Xc, Yс и R извеcтны. Но всеже выходит уравнение с 2-мя неизвестными и как его решать.
Пока у меня мысль прикрутить через параметрическое уравнение x=Xc+ r*cos(fi); y=Yc+r*sin(fi);
В зависимости от длины радиуса выбрать коэффициент приращение fi, что бы небыло зернистости и пройтись в цикле по всем 360 градусам. В общем завтра попробую отпишусь.
|
А что мешает выразить Y через Х: Y=f(X, Xc, Yc, R), где Xc, Yc, R - известные параметры, а Х перебирать с шагом 1(у тебя ж дискретный набор) в диапазоне [Xc-R, Xc+R]?
|
И еще забыл, уравнение окружности правильнее писать немного иначе: (X-Xc)^2 + (Y-Yc)^2 = R^2, иначе может рисовать зеркально относительно выбранной оси.
|
|
|
|
10.06.2008, 16:05
|
|
Прохожий
Регистрация: 04.07.2007
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Рабочий алгоритм Брезенхама для отрисовки окружности.
Удачи.
type tp=integer;
Procedure Circle(x_center,y_center,radius:tp;color_code:byte );
var x,y,delta:tp;
begin
y:=radius;
delta:=3-2*radius;
x:=0;
repeat
mempoint(x+x_center, y+y_center,color_code);
mempoint(x+x_center,-y+y_center,color_code);
mempoint(-x+x_center, y+y_center,color_code);
mempoint(-x+x_center,-y+y_center,color_code);
mempoint( y+x_center, x+y_center,color_code);
mempoint( y+x_center,-x+y_center,color_code);
mempoint(-y+x_center, x+y_center,color_code);
mempoint(-y+x_center,-x+y_center,color_code);
if delta‹0 then delta:=delta+4*x+6
else begin delta:=delta+4*(x-y)+10;dec(y);end;
inc(x);
until x›=y;
x:=y;
if y=0 then plot_circle(x,y,x_center,y_center,color_code);
end;
|
|
|
|
10.06.2008, 18:20
|
|
Вид на жительство
Регистрация: 05.01.2007
Адрес: Украина, г. Макеевка
Сообщений: 408
Сказал спасибо: 229
Сказали Спасибо 62 раз(а) в 52 сообщении(ях)
|
Сообщение от GLVlad
|
Сообщение от GLVlad
|
Цитата:
|
Не все так просто, для окружности с центром не в центре координат (извиняюсь за каламбур) уравнение примет вид (Xc-X)^2 + (Yc-Y)^2=R^2 Xc и Yc координаты центра окружности. Теперь получаем, что у нас Xc, Yс и R извеcтны. Но всеже выходит уравнение с 2-мя неизвестными и как его решать.
Пока у меня мысль прикрутить через параметрическое уравнение x=Xc+ r*cos(fi); y=Yc+r*sin(fi);
В зависимости от длины радиуса выбрать коэффициент приращение fi, что бы небыло зернистости и пройтись в цикле по всем 360 градусам. В общем завтра попробую отпишусь.
|
А что мешает выразить Y через Х: Y=f(X, Xc, Yc, R), где Xc, Yc, R - известные параметры, а Х перебирать с шагом 1(у тебя ж дискретный набор) в диапазоне [Xc-R, Xc+R]?
|
И еще забыл, уравнение окружности правильнее писать немного иначе: (X-Xc)^2 + (Y-Yc)^2 = R^2, иначе может рисовать зеркально относительно выбранной оси.
|
Да согласен с Вами, просто вчера учень спать уже хотелось и голова не варила совсем. Но я сегодня исправил алгоритм Брезенхама и все прекрсно заработало. Завтра выложу всю библиотеку для дисплеев Nokia 3310 и 3410 под CVAVR, надеюсь кому нибудь пригодится.
|
|
|
|
12.06.2008, 18:51
|
|
Вид на жительство
Регистрация: 05.01.2007
Адрес: Украина, г. Макеевка
Сообщений: 408
Сказал спасибо: 229
Сказали Спасибо 62 раз(а) в 52 сообщении(ях)
|
Извиняюсь за задержку, работа, работа... Собственно обещаная библиотека. Критика и замечения приветствуются.
Прикрепленный файл: 6411796.zip
|
|
|
Эти 6 пользователя(ей) сказали Спасибо Nikopol за это сообщение:
|
|
|
13.06.2008, 10:45
|
|
Прохожий
Регистрация: 14.03.2007
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Помогите plиz, стоит proteus 7.1 sp4 maxim_licence, выдает ошибку при подключении модуля Pcd_8544.dll Failed to authorize. Помогите кто может или ссылку дайте. Спасибо.
|
|
|
|
13.06.2008, 21:04
|
|
Вид на жительство
Регистрация: 05.01.2007
Адрес: Украина, г. Макеевка
Сообщений: 408
Сказал спасибо: 229
Сказали Спасибо 62 раз(а) в 52 сообщении(ях)
|
Попробуй протеус обновить с креком от Nemo, у меня все с первого раза завелось.
|
|
|
|
22.06.2008, 14:52
|
|
Прохожий
Регистрация: 14.03.2007
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Всем спасибо, поставил 7.2 sp6 все пошло.
|
|
|
|
23.06.2008, 20:09
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
|
Тест дисплея от мото с550 на pic12f629.
Иницилизация дисплея , низкоуровневые команды .
Знакогенератор на нем было делать лень ( все равно только цифры влезли бы).
-- Прилагается рисунок: --
Прикрепленный файл: 1674761.rar
__________________
Осторожно , злой кот
|
|
|
|
24.06.2008, 18:55
|
|
Вид на жительство
Регистрация: 05.01.2007
Адрес: Украина, г. Макеевка
Сообщений: 408
Сказал спасибо: 229
Сказали Спасибо 62 раз(а) в 52 сообщении(ях)
|
Портировал библиотеку для Nokia 6600(7210) под CVAVR, рисует линии точки, прямоугольники (закрашенные и не закрашенные), окружности. Пишет 3 шрифтами. Пока только 255 цветов, но надеюсь скоро будет больше, SPI программный, так что можно к любому порту прикручивать. Если кому интересно, могу выложить с рабочим проектом.
|
|
|
|
24.06.2008, 18:58
|
|
Вид на жительство
Регистрация: 05.01.2007
Адрес: Украина, г. Макеевка
Сообщений: 408
Сказал спасибо: 229
Сказали Спасибо 62 раз(а) в 52 сообщении(ях)
|
А вот у меня вопрос. Кто как использует свои дисплеи от мобилок, у кого какие идеи или уже воплощенные в жизнь девайсы?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:26.
|
|