*Построение 3D текста путём последовательного переноса x,y координат с двухмерного изображения.#13#10Ключём(рисуется пиксель или нет) является белый фон двухмерного изображения.#13#10#13#10Автор MAV#13#10andreimav@yandex.ru Make(delphi) ver(4.01 build 177) Pos(199,160) Add(For,16301713,11,22) { Start=1 End=120 link(onEvent,11209113:doFor,[]) link(onStop,5194398:doEndList,[(51,35)(51,70)]) } Add(For,11209113,60,22) { Start=1 End=32 link(onEvent,740613:doGetPixel,[(101,28)(101,121)(27,121)(27,147)]) } Add(Img_GetPoint,740613,39,141) { X=1 Y=1 link(onGetPixel,10544207:doCompare,[]) link(Bitmap,12060567:Var2,[(45,127)(332,127)]) link(X,4195823:Var2,[]) link(Y,10165847:Var2,[(59,132)(66,132)]) } Add(GetDataEx,4195823,39,106) { link(Data,16301713:Position,[(52,106)(17,106)]) } Add(GetDataEx,10165847,53,99) { link(Data,11209113:Position,[]) } Add(MainForm,15261923,-150,-76) { Left=20 Top=105 Width=700 Height=500 Position=1 Point(MouseX) Point(MouseY) Point(onResize) Point(Handle) link(onCreate,16299401:doEvent1,[(-106,-56)(-106,-38)(-169,-38)(-169,-21)]) link(onResize,16131419:doWork1,[(-97,-49)]) } Add(GL_Main,12986311,-80,-27) { Color=4599808 TwoSide=0 link(onInit,12198675:doInit,[]) link(onViewPort,13261708:doWork1,[(-41,-14)]) link(Handle,9179257:Var1,[(-74,-43)(-32,-43)]) } Add(Timer,9506849,-178,22) { Interval=10 Enable=1 link(onTimer,1049454:doEvent1,[]) } Add(GL_GTools,771925,-80,22) { Point(doClear) Point(doPushMatrix) Point(doPopMatrix) } Add(Hub,1049454,-136,22) { OutCount=5 link(onEvent1,771925:doClear,[]) link(onEvent2,771925:doPushMatrix,[]) link(onEvent3,10714674:doWork1,[(-92,42)(-92,-63)]) link(onEvent4,771925:doPopMatrix,[(-89,49)(-89,42)]) link(onEvent5,12986311:doFlip,[(-110,56)(-110,-7)]) } Add(Hub,16299401,-157,-27) { OutCount=3 link(onEvent1,12986311:doInit,[]) link(onEvent2,16131419:doWork2,[]) link(onEvent3,9506849:doTimer,[(-131,-7)(-131,11)(-190,11)(-190,28)]) } Add(GL_GluTools,12198675,-31,-27) { link(onInit,1101264:doEnabled,[]) } Add(GL_Light,14989894,137,-27) { link(onEnabled,8922725:doWork2,[]) } Add(GL_Options,1101264,11,-27) { link(onEvent,5851269:doEnabled,[]) } Add(GL_Options,5851269,53,-27) { Flag=1 link(onEvent,7379109:doEnabled,[]) } Add(MultiElement,10714674,-31,-69) { link(onEvent1,11964746:doSet,[]) link(Data1,9179257:Var2,[]) link(Data2,9179257:Var3,[]) } BEGIN_SDK Add(EditMulti,4359962,3,3) { EventCount=1 WorkCount=1 DataCount=2 Width=223 Height=109 link(doWork1,3276760:doRotate,[(19,9)(19,55)]) } Add(GL_Rotate,3276760,35,49) { Y=1 link(onRotate,8079493:doRotate,[]) link(Angle,4359962:Data1,[(62,15)(9,15)]) } Add(GL_Rotate,8079493,112,49) { X=1 link(onRotate,4359962:onEvent1,[(189,55)(189,9)]) link(Angle,4359962:Data2,[(139,8)(16,8)]) } END_SDK Add(HubEx,16131419,-101,-27) { link(onEvent,12986311:doViewPort,[]) } Add(GL_CallList,10583328,179,-69) { Index=1 } Add(Gl_BeginList,16127239,235,-27) { Index=1 link(onBiginList,2884083:doEvent1,[]) } Add(Gl_EndList,5194398,60,64) { } Add(Math,689394,123,141) { OpType=3 Op2=15 link(onResult,7420044:doOperation,[]) link(Op1,4195823:Var3,[(129,115)]) } Add(Math,7420044,165,141) { OpType=3 Op2=15 link(onResult,6591057:doColor,[(205,147)(205,233)(28,233)(28,203)]) link(Op1,10165847:Var3,[(171,108)]) } Add(GL_Color,6591057,39,197) { link(onColor,14596528:doPushMatrix,[]) link(Color,12173207:Value,[(45,191)(22,191)(22,231)(-11,231)]) } Add(If_else,10544207,81,141) { Type=2 Op2=Integer(16777214) link(onTrue,689394:doOperation,[]) } Add(GL_Disk,3988931,326,253) { OutRadius=0.05 Slices=4 Stacks=4 link(onDraw,6430924:doEvent2,[]) link(OutRadius,14909884:Var1,[(339,241)]) } Add(GL_GTools,14596528,81,197) { Point(doPushMatrix) link(onEvent,13726622:doTranslate,[]) } Add(GL_GTools,14496084,417,246) { Point(doPopMatrix) } Add(Gl_Translate,13726622,123,197) { link(onTranslate,14461812:doTranslate,[]) link(X,689394:Result,[]) link(Y,7420044:Result,[(136,188)(171,188)]) } Add(Gl_Translate,14461812,165,197) { X=-1 Y=-0.5 link(onTranslate,15292089:doEvent,[]) } Add(Bitmap,7895986,368,-41) { HWidth=120 HHeight=32 Point(doCreate) Point(onCreate) Point(Width) Point(Height) } Add(Hub,2884083,277,-27) { link(onEvent1,7895986:doCreate,[]) link(onEvent2,4901519:doDraw,[]) } Add(Img_Text,4901519,312,-20) { X=2 Y=-1 Font=[Tahoma,8,0,16777215,204] Point(doFont) link(onDraw,16301713:doFor,[(349,-14)(349,14)(6,14)(6,28)]) link(Bitmap,12060567:Var1,[(318,-28)(305,-28)(305,24)]) link(Text,5747890:Text,[]) } Add(GL_Sphere,4601128,326,197) { Radius=0.03 link(onDraw,6430924:doEvent1,[(377,203)(377,252)]) link(Radius,15089416:Var1,[(332,185)]) } Add(Edit,5747890,319,-62) { Left=485 Top=5 Width=190 Text="HiAsm" link(onChange,15870987:doWork2,[(363,-56)(363,-70)]) } Add(GL_Cube,623719,326,302) { Size=0.05 link(onDraw,6430924:doEvent3,[(372,308)(372,266)]) link(Size,14909884:Var2,[(332,292)(367,292)]) } Add(GL_Material,11964746,11,-69) { Side=2 Specular=13424605 Shininess=20 link(onSet,13537090:doRotate,[]) } Add(GetDataEx,12060567,319,15) { Angle=1 link(Data,7895986:Bitmap,[(374,24)]) } Add(ChildPanel,9179257,-38,-132) { } BEGIN_SDK Add(EditMulti,16348053,21,21) { VarCount=3 link(Var1,14966413:Handle,[(27,179)(41,179)]) link(Var2,14966413:MouseX,[(34,179)(48,179)]) link(Var3,14966413:MouseY,[(41,179)(55,179)]) } Add(Panel,14966413,35,105) { Width=475 Height=473 Align=1 Point(Handle) Point(MouseX) Point(MouseY) } END_SDK Add(HubEx,8922725,214,-34) { link(onEvent,16127239:doBeginList,[]) } Add(GL_Options,7379109,95,-27) { Flag=2 link(onEvent,14989894:doEnabled,[]) } Add(Button,794754,214,141) { Left=525 Top=30 Width=100 Caption="Тип примитива" link(onClick,13520011:doNext,[]) } Add(IndexToChanel,15292089,256,197) { Count=5 Point(Index) link(onEvent1,4601128:doDraw,[]) link(onEvent2,1849278:doRotate,[(319,210)(319,247)(237,247)(237,259)]) link(onEvent3,623719:doDraw,[(314,217)(314,308)]) link(onEvent4,3796137:doDraw,[(307,224)(307,350)]) link(onEvent5,9576166:doRotate,[(299,231)(299,379)(237,379)(237,392)]) link(Index,13520011:Count,[]) } Add(Hub,6430924,396,246) { InCount=5 OutCount=1 link(onEvent1,14496084:doPopMatrix,[]) } Add(Counter,13520011,256,141) { Max=4 link(onNext,2460290:doWork2,[(299,147)(299,-42)]) } Add(HubEx,2460290,221,-55) { Angle=2 link(onEvent,8922725:doWork1,[(218,-42)]) } Add(GL_Rotate,1849278,249,253) { Angle=45 Z=1 link(onRotate,3988931:doDraw,[]) } Add(GL_Rotate,12912479,137,-69) { link(onRotate,10583328:doCallList,[]) link(Y,12519725:Count,[(157,-80)(131,-80)(131,-25)(101,-25)]) } Add(Counter,12519725,95,-69) { Max=1800 Type=1 Default=900 link(onNext,12912479:doRotate,[]) } Add(GL_Rotate,13537090,53,-69) { Angle=180 Z=1 link(onRotate,12519725:doNext,[]) } Add(Math,4097464,368,141) { OpType=3 Op2=1000 Default=0.04 link(onResult,3073939:doWork3,[(407,147)]) } Add(ScrollBar,14389103,326,141) { Left=480 Top=80 Width=200 Max=100 Page=10 Position=40 link(onPosition,4097464:doOperation,[]) } Add(HubEx,15870987,228,-83) { Angle=2 link(onEvent,2460290:doWork1,[(225,-70)]) } Add(GetDataEx,15089416,354,176) { Angle=1 link(Data,4097464:Result,[(374,185)]) } Add(GetDataEx,14909884,354,232) { link(Data,15089416:Var2,[]) } Add(Font,8606228,158,64) { Font=[Tahoma,8,0,16777215,204] link(onFont,13954065:doEvent1,[(230,70)(230,35)]) link(Size,5591816:Position,[(164,52)(152,52)(152,102)(120,102)]) link(Style,3295988:Value,[]) } Add(Hub,13954065,270,29) { link(onEvent1,4901519:doFont,[(295,35)(295,-7)]) link(onEvent2,3797887:doWork3,[(292,42)(292,22)(260,22)]) } Add(HubEx,3797887,256,-97) { Angle=2 link(onEvent,15870987:doWork1,[(232,-84)]) } Add(Memory,3295988,179,22) { Default=Integer(0) } Add(Label,3535694,368,99) { Left=480 Top=60 Width=182 Height=17 Caption="Размер элементарного примитива" } Add(Label,9616896,116,22) { Left=480 Top=100 Width=85 Height=17 Caption="Размер шрифта" } Add(Label,11106988,-31,22) { Left=480 Top=140 Height=17 Caption="Масштаб" } Add(GL_Perspective,10160295,-31,71) { Fovy=15 zNear=0.01 zFar=40 link(Fovy,12774667:Position,[(-18,65)(8,65)(8,110)(-74,110)]) } Add(ScrollBar,12774667,-80,71) { Left=480 Top=160 Width=200 Max=100 Min=1 Page=10 Position=15 link(onPosition,13261708:doWork2,[(-46,77)(-46,56)]) } Add(HubEx,13261708,-45,43) { Angle=1 link(onEvent,10160295:doPerspective,[(-41,77)]) } Add(ScrollBar,5591816,114,64) { Left=480 Top=120 Width=200 Max=48 Min=8 Page=10 Position=8 link(onPosition,8606228:doFont,[]) } Add(GL_Cylinder,3796137,326,344) { BaseRadius=0.025 TopRadius=0 Height=0.03 Slices=16 Stacks=16 link(onDraw,6430924:doEvent4,[(379,350)(379,273)]) } Add(GL_Torus,16530261,326,386) { inRadius=0.01 outRadius=0.025 Sides=5 Rings=5 link(onDraw,6430924:doEvent5,[(386,392)(386,280)]) } Add(GL_Rotate,9576166,249,386) { Angle=55 Z=1 link(onRotate,16530261:doDraw,[]) } Add(Button,3575636,-129,169) { Left=480 Top=200 Caption="Color" link(onClick,8423532:doOpen,[]) } Add(HubEx,3073939,403,57) { Angle=3 link(onEvent,3797887:doWork2,[(407,-84)]) } Add(ColorDialog,8423532,-87,169) { link(onSelect,3735389:doEvent1,[]) } Add(Hub,3735389,-45,169) { link(onEvent1,12173207:doValue,[(-24,175)(-24,196)]) link(onEvent2,3073939:doWork1,[(421,182)(421,70)]) } Add(Memory,12173207,-17,190) { Default=Integer(43264) } Add(Label,5616719,-171,169) { Left=480 Top=180 Width=180 Height=20 Caption="Выбор цвета" }