Вверх ↑
Этот топик читают: Гость
Ответов: 899
Рейтинг: 43
#1: 2009-01-06 23:16:09 ЛС | профиль | цитата
Как заставить визуальный элемент двигаться по окружности по форме, используя ее размеры Width и Heigh

Знаю там должно быть что-то с синусами/косинусами, но никак не могу заставить двигаться правильно

ЗЫ. Хочу сделать валкодер, управляемый не перемещением мышки, а клавишами (больше/меньше)
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#2: 2009-01-06 23:18:42 ЛС | профиль | цитата
unalex, залезь в публикатор и посмотри, как я это сделал. Кстати, тот валкодер работает и от клавиш
карма: 22

0
Ответов: 8930
Рейтинг: 823
#3: 2009-01-06 23:37:58 ЛС | профиль | цитата
unalex, Y=R*Sin(t), X=R*Cos(t), где X, Y - координаты точки, R - радиус, t - угол поворота
карма: 19

0
Ответов: 899
Рейтинг: 43
#4: 2009-01-07 00:15:32 ЛС | профиль | цитата
Вот, сделал, но почему то не работает
code_2324.txt

[size=-2]------ Добавлено в 00:15
nesco писал(а):
залезь в публикатор

я таких хитрых словей не знаю
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
файлы: 1code_2324.txt [2.6KB] [235]
Разработчик
Ответов: 26163
Рейтинг: 2127
#5: 2009-01-07 00:23:37 ЛС | профиль | цитата
unalex писал(а):
я таких хитрых словей не знаю

Вот, почитай
http://hiasm.1gb.ru/forum.html?q=3&p=89653#p89653
карма: 22

0
Ответов: 899
Рейтинг: 43
#6: 2009-01-07 01:41:56 ЛС | профиль | цитата
Нашел, только слишком уж он хитрый, мне б чего нить попроще
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 899
Рейтинг: 43
#7: 2009-01-07 01:52:53 ЛС | профиль | цитата
Может кто посмотрит мою схемку что в ней неправильно?
С математикой там все нормально(проверял на других визуальных элементах), но почему то совсем не отрисовывается элипс(ручка валкодера)
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#8: 2009-01-07 02:00:20 ЛС | профиль | цитата
unalex, надо две координаты указывать, а не одну



Add(MainForm,742979,329,371)
{
Height=415
link(onCreate,569735:doDraw,[(483,391)(483,321)])
}
Add(ChildPanelEx,569735,539,301)
{
}
BEGIN_SDK
Add(EditMultiEx,11566080,21,21)
{
WorkCount=#4:doUp|6:doDown|6:doDraw|
Width=489
Height=431
link(doUp,3077892:doEvent1,[(74,27)(74,90)])
link(doDown,10113851:doEvent1,[(42,34)(42,209)])
link(doDraw,4219558:doWork1,[(200,41)])
}
Add(Panel,14645376,378,42)
{
Left=5
Top=10
Width=230
Height=220
Color=0
BevelInner=0
Point(Handle)
Point(Width)
Point(Height)
}
Add(Img_Ellipse,9428362,378,182)
{
DrawSource=1
Color=16777215
BgColor=0
Style=1
Point(Point2)
link(Bitmap,2575699:Var2,[])
link(Point2,9875218:Point,[])
}
Add(MathParse,5337781,343,238)
{
MathStr="%2 / 2 - sin(pi * %1 / 180) * (%2 / 3) - 10"
ResultType=0
link(X2,8858701:Var1,[(356,114)])
}
Add(MathParse,15382286,378,273)
{
MathStr="%2 / 2 + cos(pi*%1 / 180) * (%2 / 3) - 10"
ResultType=0
link(X2,8190352:Var3,[(391,232)(464,232)(464,114)])
}
Add(Hub,1514335,273,238)
{
OutCount=3
link(onEvent1,5337781:doCalc,[])
link(onEvent2,15382286:doCalc,[(321,251)(321,279)])
link(onEvent3,15318190:doDraw,[(313,258)(313,398)])
}
Add(PointXY,9875218,392,133)
{
link(X,8858701:Var2,[(398,125)(391,125)])
link(Y,8190352:Var2,[(405,125)(447,125)])
}
Add(PointXY,15703674,336,336)
{
link(X,5337781:Result,[(342,303)(349,303)])
link(Y,15382286:Result,[(349,320)(384,320)])
}
Add(GetDataEx,8858701,378,105)
{
link(Data,14645376:Width,[])
}
Add(GetDataEx,8190352,434,105)
{
link(Data,14645376:Height,[(447,91)(398,91)])
}
Add(GetDataEx,2575699,371,119)
{
link(Data,14645376:Handle,[])
}
Add(Counter,3411037,224,238)
{
Max=180
link(onNext,1514335:doEvent1,[])
}
Add(Hub,3077892,91,84)
{
link(onEvent1,4219558:doWork2,[])
link(onEvent2,3411037:doNext,[(131,97)(131,244)])
}
Add(Hub,10113851,63,203)
{
link(onEvent1,4219558:doWork3,[(200,209)])
link(onEvent2,3411037:doPrev,[(112,216)(112,251)])
}
Add(HubEx,4219558,196,77)
{
link(onEvent,9428362:doDraw,[(291,90)(291,188)])
}
Add(Img_Ellipse,15318190,322,392)
{
Point2AsOffset=0
DrawSource=1
Color=12632256
BgColor=12632256
Style=1
Point(Point1)
Point(Point2)
link(Bitmap,2575699:Var1,[(328,128)])
link(Point1,15703674:Point,[])
link(Point2,7515033:Point,[(349,380)(391,380)])
}
Add(PointXY,7515033,385,336)
{
X=20
Y=20
}
END_SDK
Add(Button,773164,329,266)
{
Left=285
Top=20
link(onClick,569735:doUp,[(450,272)(450,307)])
}
Add(Button,7400293,329,308)
{
Left=285
Top=50
link(onClick,569735:doDown,[])
}

карма: 22

0
Ответов: 899
Рейтинг: 43
#9: 2009-01-07 14:09:41 ЛС | профиль | цитата
nesco, почему то эта схема не вставляется, выходит сообщение об ошибке и теряются связи между элементами
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#10: 2009-01-07 14:15:19 ЛС | профиль | цитата
unalex, сохрани в файл
карма: 22

0
Ответов: 899
Рейтинг: 43
#11: 2009-01-07 14:26:47 ЛС | профиль | цитата
не помогло

[size=-2]------ Добавлено в 14:26
сори туплю

как обычно в пофиксенном HiAsm сначало ошибка выскочила, но при перезапуске программы открылся нормально
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#12: 2009-01-07 14:28:40 ЛС | профиль | цитата
Попробуй пересохраненный файл, который я прикрепил
------------ Дoбавленo:

unalex писал(а):
как обычно в пофиксенном HiAsm сначало ошибка выскочила, но при перезапуске программы открылся нормально

Тьфу, блини, а я его пересохранил
карма: 22

0
файлы: 1project1_001.sha [2.8KB] [251]
Ответов: 8930
Рейтинг: 823
#13: 2009-01-07 15:54:34 ЛС | профиль | цитата
unalex, где применяется валкодер, подрузамевается работа только мышкой во всей программе, правда разработчики обычно упускают понятие эргономика, удобство, а какое удобство, если приходится шнырять рукой то на клавиатуру, то на мышку, вот и приходится ради красоты управлять валкодером через клавиатуру, подумайте, может и вовсе от него отказаться
Ну а если красивости хочется, может проще сделать троечку рисунков и крутить валкодер накладывая их
карма: 19

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#14: 2009-01-07 16:01:37 ЛС | профиль | цитата
Леонид писал(а):
Ну а если красивости хочется, может проще сделать троечку рисунков и крутить валкодер накладывая их

А я чего, хреновый сделал, очень жаль
Похоже, никому он там не нужен, ни как пример, ни как компонент, а ведь там столько интересных вещей, как примеров: и как градиенты отрисовать, и как их повернуть, и как прозрачно наложить на другой фон, и как сглаживание применить.
А ведь начинал я его делать имея только схему Galkova.
Млин... И кому я это все делал
карма: 22

0
Ответов: 899
Рейтинг: 43
#15: 2009-01-07 16:16:22 ЛС | профиль | цитата
Леонид писал(а):
где применяется валкодер, подрузамевается работа только мышкой во всей программе

Леонид, у меня вообще подразумевается работа только с клавиатурой
Это часть проекта под названием Электронный музыкальный инструмент и в нем будет применен реальный валкодер, монитор использоваться вообще не будет, но для наглядности этот программный валкодер все же будет дублировать реальный(т.е на экране компьютера будет визуальная копия органов управления инструментом)

nesco писал(а):
А я чего, хреновый сделал, очень жаль

Неправда, тот валкодер что в публикаторе вообще супер и смотрится очень эстетично

Ну а за этот отдельное спасибо
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)