purebasic.info

PureBasic forum
Текущее время: Вт май 22, 2018 1:11 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Определение цветов
СообщениеДобавлено: Сб июн 04, 2016 1:38 pm 
Не в сети
студент

Зарегистрирован: Вс май 29, 2016 5:01 pm
Сообщений: 9
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 4
Как в формате R.G.B отличать цвета (синий от красного или же черный от белого)?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Определение цветов
СообщениеДобавлено: Сб июн 04, 2016 2:53 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6276
Благодарил (а): 19 раз.
Поблагодарили: 184 раз.
Пункты репутации: 48
Подвигай в этой программе ползунки, сам поймёшь
Код:
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
 
Procedure HexVal(a$)
  a$=Trim(UCase(a$))
  If Asc(a$)='$'
    a$=Trim(Mid(a$,2,Len(a$)-1))
  EndIf
  result=0
  *adr.BYTE=@a$
  For i=1 To Len(a$)
    result<<4
    Select *adr\b
      Case '0'
      Case '1':result+1
      Case '2':result+2
      Case '3':result+3
      Case '4':result+4
      Case '5':result+5
      Case '6':result+6
      Case '7':result+7
      Case '8':result+8
      Case '9':result+9
      Case 'A':result+10
      Case 'B':result+11
      Case 'C':result+12
      Case 'D':result+13
      Case 'E':result+14
      Case 'F':result+15
      Default:i=Len(a$)
    EndSelect
    *adr+1
  Next
  ProcedureReturn result
EndProcedure
 
If OpenWindow(0, 0, 0, 340, 140, "Соответсвие цвета RGB", #PB_Window_MinimizeGadget| #PB_Window_ScreenCentered)
 
    TextGadget(0, 5, 5, 25, 20, "R")
    TrackBarGadget(1, 35,  5, 265, 20, 0, 255)
    StringGadget(2, 305, 5, 30, 20, "0", #PB_String_ReadOnly)
   
    TextGadget(10, 5, 30, 25, 20, "G")
    TrackBarGadget(11, 35, 30, 265, 20, 0, 255)
    StringGadget(12, 305, 30, 30, 20, "0", #PB_String_ReadOnly)
   
    TextGadget(20, 5, 55, 25, 20, "B")
    TrackBarGadget(21, 35, 55, 265, 20, 0, 255)
    StringGadget(22, 305, 55, 30, 20, "0", #PB_String_ReadOnly)
   
    StringGadget(30, 5, 90 , 60, 20, "$000000", #PB_String_ReadOnly)
    StringGadget(40, 5, 115, 60, 20, "0"      , #PB_String_ReadOnly)
 
 
  CreateImage(1, 260, 20)
  CreateImage(2, 260, 20)
  rot   = 0
  gruen = 0
  blau  = 0
EndIf
 
 
Repeat
  rot_hex$   = Hex(rot)
  gruen_hex$ = Hex(gruen)
  blau_hex$  = Hex(blau)
 
  Farbe$ = "$"
  If Len(blau_hex$) = 2
    Farbe$ + blau_hex$
  Else
    Farbe$ + "0" + blau_hex$
  EndIf
  If Len(gruen_hex$) = 2
    Farbe$ + gruen_hex$
  Else
    Farbe$ + "0" + gruen_hex$
  EndIf
  If Len(rot_hex$) = 2
    Farbe$ + rot_hex$
  Else
    Farbe$ + "0" + rot_hex$
  EndIf
 
  If Farbe$ <> Farbe_merken$
    SetGadgetText(30, Farbe$)
    Farbe_merken$ = Farbe$    
  EndIf    
 
  Wert = HexVal(Farbe$)
  If Wert <> Wert_merken
    SetGadgetText(40, Str(Wert))
    Wert_merken = Wert    
  EndIf
 
  StartDrawing(ImageOutput(1))
    Box(0, 0, 260, 20, RGB(rot, gruen, blau))
  StopDrawing()
  StartDrawing(ImageOutput(2))
    Box(0, 0, 260, 20, Wert)
  StopDrawing()  
 
  StartDrawing(WindowOutput(0))
    DrawImage(ImageID(1), 75, 90)
  StopDrawing()
  StartDrawing(WindowOutput(0))
    DrawImage(ImageID(2), 75, 115)
  StopDrawing()
 
  EventID = WaitWindowEvent()
 
  If EventID = #PB_Event_Gadget
    Select EventMenu()
      Case 1
        rot = GetGadgetState(1)
        SetGadgetText(2, Str(rot))
      Case 11
        gruen = GetGadgetState(11)
        SetGadgetText(12, Str(gruen))
      Case 21
        blau = GetGadgetState(21)
        SetGadgetText(22, Str(blau))
    EndSelect  
  EndIf  
Until EventID = #PB_Event_CloseWindow
 


_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Определение цветов
СообщениеДобавлено: Вс апр 29, 2018 8:28 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 603
Благодарил (а): 66 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
kvitaliy писал(а):
Подвигай в этой программе ползунки, сам поймёшь

ну подвигал, и чё? что я должен понять? что прога показывает?

Код:
1
Case '1':result+1


сложение здесь лишнее, сразу присвоение, быстрей будет


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Определение цветов
СообщениеДобавлено: Вс апр 29, 2018 1:52 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6276
Благодарил (а): 19 раз.
Поблагодарили: 184 раз.
Пункты репутации: 48
newJS писал(а):
что прога показывает?

Прога показывает "Соответствие цвета RGB". Визуально.
Если надо, что бы программа сама писала цвет словами, типа это зелёный или это красный, то тоже можно написать такую. Но это будет уже совсем другая программа.
newJS писал(а):
сложение здесь лишнее, сразу присвоение, быстрей будет

Мы тут разве куда-то торопимся? :D
У меня всё прога успевает показать.

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Определение цветов
СообщениеДобавлено: Пн апр 30, 2018 5:52 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 603
Благодарил (а): 66 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
kvitaliy писал(а):
Прога показывает "Соответствие цвета RGB". Визуально.

так и не понял, чему соответствие? соответствие кода цвету? показать цвет?
а что показывает самая нижняя строка? даже идей нету

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


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Определение цветов
СообщениеДобавлено: Пн апр 30, 2018 2:13 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6276
Благодарил (а): 19 раз.
Поблагодарили: 184 раз.
Пункты репутации: 48
newJS писал(а):
ну интересно мне

Интересно, так изучай код архив! Или у автора спроси:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
; German forum: http://www.purebasic.fr/german/archive/viewtopic.php?t=1418&highlight=
; Author: CSprengel (updated for PB4.00 by blbltheworm)
; Date: 20. June 2003
; OS: Windows
; Demo: Yes
 
 
; Calculate the hex-code of all 16.8 mio. colors
 
; Farbenhexer gibt den Hexcode einer Farbe aus. Zusдtzlich hab ich noch GPI's HexVal hinzu gefьgt,
; so wird auch der Wert der Farbe ausgegeben.
; Damit kann man Problemlos den Hexcode aller 16,8 Millionen Farben ermitteln.
 
;FarbenHexer
;CSprengel
;Procedure HexVal() ist von GPI
;Juni 2003



. Я не помню, что неделю назад было, а ты с некропостными темами двухгодичной давности мозги выносишь :D

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Определение цветов
СообщениеДобавлено: Вт май 01, 2018 6:20 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 603
Благодарил (а): 66 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
ааааааа, 2003 год, тогда понятно, вопросы сами отпали :D
kvitaliy писал(а):
. Я не помню, что неделю назад было, а ты с некропостными темами двухгодичной давности мозги выносишь :D

а ты перевод правильно, я ж голову сломал на этом, "Соответсвие цвета RGB"


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Определение цветов
СообщениеДобавлено: Вт май 01, 2018 10:02 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6276
Благодарил (а): 19 раз.
Поблагодарили: 184 раз.
Пункты репутации: 48
newJS писал(а):
а ты перевод правильно, я ж голову сломал на этом, "Соответсвие цвета RGB"

Ну ладно. Вот с немецкого:

FarbenHexer -> Цвет Колдун

Так намного понятнее?

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Определение цветов
СообщениеДобавлено: Вт май 01, 2018 5:55 pm 
Не в сети
доцент

Зарегистрирован: Пн мар 26, 2018 9:09 pm
Сообщений: 27
Благодарил (а): 0 раз.
Поблагодарили: 5 раз.
Пункты репутации: 0
Школьная программа--> Физика-->Призма--> Спектр-->Радуга (каждый охотник желает...)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Определение цветов
СообщениеДобавлено: Ср май 02, 2018 6:48 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 603
Благодарил (а): 66 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
kvitaliy писал(а):
Так намного понятнее?

да одинаково не передаёт смысл кода, то что код делает
а как уже говорил, самая нижняя строка так и остаётся загадкой, чё она показывает? ни кто не знает?


ну ничё, зима начнётся мы им покажем где наши раки зимуют :D


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Определение цветов
СообщениеДобавлено: Ср май 02, 2018 7:47 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6276
Благодарил (а): 19 раз.
Поблагодарили: 184 раз.
Пункты репутации: 48
newJS писал(а):
самая нижняя строка так и остаётся загадкой, чё она показывает? ни кто не знает?

По логике эта строка должна показывать то же самое, что и верхняя, только в десятичном формате.
И вроде даже функция под названием HexVal(a$) это как бы подтверждает.
Но вот или функция работает не так, как надо, у неё на выходе только 0-240 числа, или работает так как задумана, но задумана была для другого совсем, автор пишет, что он её откуда то позаимствовал - это мне не известно.
Если функцию выкинуть, и исправить строчку так
Код:
1
Wert = Val(Farbe$);HexVal(Farbe$) 


То всё становится понятно.

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Определение цветов
СообщениеДобавлено: Чт май 03, 2018 5:23 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 603
Благодарил (а): 66 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
сейчас сей код уже не актуален, с тех пор РВ сильно изменился


P.S.
если кому надо преобразовывать цвет в другие кодировки используйте библиотеку tinycolor.js
для окошек с цветом используйте TextGqdget, ContainerGadget, а если нужна мыша на этих окошках, тогда канвас


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB