#Define MaskAlpha(c) (c Or &hFF000000 Xor &hFF000000)
Код
Dim As Integer q = 1,w = 2, e = 3 ,r=3
#Define a/b<>d/c (((a)<>(b))And((d)<>(c))) If q/w<>e/r Then ? "ASDFDS" Sleep
Работа с цветом пикселя изображения
Код
Dim As Integer im,w,h,dpp,pitch,row Dim As ULong Pointer pixel ImageInfo im,w,h,dpp,pitch,row ' colour получение цвета точки в координате _x,_y #Macro ppoint(_x,_y,colour) pixel=row+pitch*(_y)+(_x)*4 (colour)=*pixel #EndMacro
' установить цвет точки в координате _x,_y #Macro ppset(_x,_y,colour) pixel=row+pitch*(_y)+(_x)*4 *pixel=(colour) #EndMacro
А куда пропал макрос цикла foreach. Сегодня видел днем , а к вечеру пропал
А вообще неплохие примеры. Иногда кстати макрос очень даже в тему. Я конечно не сильно увлекаюсь макросами , но иногда он реально напрашивается в коде. Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
Dim As Integer q = 1,w = 2, e = 3 ,r=5 #Define a/b<>d/c (((a)<>(b))And((d)<>(c))) If q/w<>e/r Then ? "ASDFDS"
For k As Integer = -5 To 5 For j As Integer = -5 To 5 For i As Integer = -5 To 5 If k/j<>k/i Then ? k;"<>";j;" & ";k;"<>";i Else ? k;"<>";j;" = ";k;"<>";i Next Next Next
Sleep
Этот не проверял с другими значениями , лажанулся.
Код
#Define a<b<c (((a)<(b))And((b)<(c)))
polopok
Сообщение отредактировал ntvgjhfnj - Вторник, 13.12.2022, 07:13
ntvgjhfnj, запятая не причем. Посмотри внимательней, там должна быть истина когда по обеим сторонам разные, в общем не работает. Жаль, что и этот "a<b<c" не работает, код получился бы более читабельным.
Только есть проблема, что макрос привязан к именам переменных - с другими уже не работает. Видимо "a_b_c" воспринимается как цельное имя, а не набор переменных.
Сообщение отредактировал Vitamin - Вторник, 13.12.2022, 18:17
Type V3 : As Single x,y,z,w,c : End Type #Define vct Type<V3> #Define setVec(x_,y_,z_,c) Type<V3>(x_,y_,z_,1.0,c) Operator + (v1 As v3,v2 As v3) As v3 : Return Type<v3>(v1.x+v2.x,v1.y+v2.y,v1.z+v2.z) : End Operator Operator -(v1 As v3,v2 As v3) As v3 : Return Type<v3>(v1.x-v2.x,v1.y-v2.y,v1.z-v2.z) : End Operator Operator * (f As Single,v1 As v3) As v3 : Return vct(f*v1.x,f*v1.y,f*v1.z) : End Operator Operator * (v1 As v3,f As Single) As v3 : Return f*v1 : End Operator
Код
#Macro OpenF ( Opt , path) Open path For Opt As #1 #EndMacro
OpenF(Output,"1.txt") Close OpenF(Binary,"2.txt") Close
''' --------------------------------
#Macro OpenF ( Opt) #If Opt = 1 Open "1.txt" For Output As #1 #ElseIf Opt = 2 Open "2.txt" For Binary As #1 #EndIf #EndMacro
OpenF(1) ' <- Output Close OpenF(2) ' <- Binary Close
' ################# ' # vector3 x,y,z # ' ################# #define v3Def(n_) As real _ n_##x=Any, n_##y=Any, n_##z=Any #define v3Dim(n_) Dim v3Def(n_) #define v3Set(n_,b,c,d) _ n_##x = b : n_##y = c : n_##z = d #define v3opv3(a,b,c,o) a##x = b##x o c##x : a##y = b##y o c##y : a##z = b##z o c##z #define v3ops(a,b,c,o) a##x = b##x o c : a##y = b##y o c : a##z = b##z o c ' a = b op c (vector xyz) #define v3Add(a,b,c) v3opv3(a,b,c,+) #define v3Sub(a,b,c) v3opv3(a,b,c,-) #define v3Muls(a,b,c) v3ops(a,b,c,*) ' a+=b #define v3Inc(a,b) a##x+= b##x : a##y+= b##y : a##z+= b##z ' a=b #define v3Cpy(a,b) a##x = b##x : a##y = b##y : a##z = b##z #define v3LengthSQ(a) a##x * a##x + a##y * a##y + a##z * a##z ' dot = a . b #define v3Dot(a,b) a##x * b##x + a##y * b##y + a##z * b##z
#Macro v3Unit(n_) Scope Dim As real L2 = v3LengthSQ(n_) If L2 Then L2=1/Sqr(L2) : n_##x*=L2 : n_##y*=L2 : n_##z*=L2 End Scope #EndMacro ' a = normalize(b) (safe) #Macro v3Norm(a,b) Scope v3Cpy(a,b) Dim As real l2 = v3LengthSQ(b) If l2 Then l2=1/Sqr(l2) : a##x*=l2:a##y*=l2:a##z*=l2 End Scope #EndMacro
polopok
Сообщение отредактировал ntvgjhfnj - Среда, 14.12.2022, 04:54