GTA Közösség - A magyar GTA fórum

Multi Theft Auto (MTA) => MTA: Szerverfejlesztés => Segítségkérés => A témát indította: xerox0224 - 2017. December 26. - 00:26:01

Cím: Háromszög DxDraw
Írta: xerox0224 - 2017. December 26. - 00:26:01
Sziasztok. Az lenne a kérdésem, hogyan lehetséges dxdraw-al nem csak kockát, hanem pl háromszöget, vagy kört alkotni, amit ezek után mint egy HUD-ot mozgatni is tudok? ( Pl.: egy háromszög, és ahogy megy le az életerő, úgy szépen lassan \"épül le\" a háromszög is. ) válaszotokat előre is köszönöm? ( Fő kérdés ez lenne, hogyan lehet háromszög alakot csinálni? )
Cím: Háromszög DxDraw
Írta: Robika1 - 2017. December 26. - 02:15:41
Szia.
 
Szerintem a legegyszerűbb, ha egy sima alfa csatornás png képet rajzolsz ki amin egy háromszög van. A \"leépülésre\" meg van egy dxDrawImageSection nevű funkció, amivel ezt meg tudod valósítani.
Cím: Háromszög DxDraw
Írta: xerox0224 - 2017. December 26. - 14:16:39
Köszönöm szépen, ez működött, isten király vagy! :D Lenne még egy kérdés. HUD-okat tesztelgetek. A háromszög bejött, viszont most egy hatszög alakú HUD-ot csináltam. Próbálom azt megcsinálni ( nem teli hatszög, hanem csak egy egyszerű hatszög külső vonal, nincs kitöltve ), mint a háromszöggel, viszont akkor ugye az egészet ( pl.: tetejétől az aljáig ) tünteti el. Úgy kéne, mint ha pl. egy betöltést, csak kör alak helyett hatszög alak. Ez lenne az utolsó kérdésem, ez hogyan lehetséges?
Cím: Háromszög DxDraw
Írta: xerox0224 - 2017. December 26. - 14:37:23
Nézegettem ezt is, csak ugye ez így egy kockát kreál, nekem meg hexagon, azaz hatszög alak kéne, csak nem tudom, hogyan egészítsem ki ezt... ha tudnál segíteni, azt nagyon de nagyon megköszönném :D 
Cím: Háromszög DxDraw
Írta: Robika1 - 2017. December 26. - 15:30:29
Erre nem nagyon van most ötletem, esetleg 6 darab sima dx vonallal próbáld kirajzolni.
Cím: Háromszög DxDraw
Írta: thegergo02 - 2017. December 26. - 15:48:41
https://wiki.multitheftauto.com/wiki/DxDrawTriangle
 
meg van Circle is
Cím: Háromszög DxDraw
Írta: Robika1 - 2017. December 26. - 18:26:07
Kerestem ezeket, de nem találtam a funkcióknál. Lehet azért, mert Useful Function :D
Cím: Háromszög DxDraw
Írta: xerox0224 - 2017. December 26. - 19:03:43
Hát én se találok nagyon, csak Oktagon-t :D Szerintem ilyen nincs is már :D Mert amúgy eredetileg egy kép van róla, és annak kéne szépen lassan \"elfogyni\", viszont szerintem az se nagyon kivitelezhető.
Cím: Háromszög DxDraw
Írta: thegergo02 - 2017. December 26. - 19:10:14
Idézetet írta: Robika1 date=1514309167


   
       Useful Function
   


igen az.
Cím: Háromszög DxDraw
Írta: xerox0224 - 2017. December 26. - 20:11:19
Feltettem külföldi fórumon is a kérdést, egy srác adott egy választ, viszont bárhogy próbálom, nem tudom kivitelezni, illetve értem amit leírt, viszont nem tudom hol állítsam át. 
 



   
      You can make a hexagon with circle math. Just limit the points to 8.
   
   
      https://wiki.multitheftauto.com/wiki/DxDrawCircle
   
   
      -IIYAMA
   

[/quote]
 
 
Cím: Háromszög DxDraw
Írta: MakroBox - 2017. December 26. - 20:28:54
Én sem értem, mire gondol a csávó - de van egy ötletem.
 
Ez egy jó kis matematikai probléma: szögek használata nélkül kell tudni megoldani a feladványt.
A szab. hatszög csúcsainak pozícióit kéne \"megtalálni\".
 
Mivel ez 6 db szab. háromszögből áll, így nem lesz annyira nehéz dolgunk.
A szab. 3szög magasságvonala oldal/2 * gyök(3).
Ezzel ki lehet számolni a 6szög csúcsainak helyét, de mindjárt megpróbálom neked leprogramozni, ha gondolod. :D
Ennyire még sosem jött meg a kedvem programozni, tetszik ez a feladat! :P
Cím: Háromszög DxDraw
Írta: xerox0224 - 2017. December 26. - 20:32:17
Figyelj, kilencedikes vagyok.. tanulom rendesen a matekot, viszont most nem ugrik be miről beszélsz, mármint hogy gondoltad :D Ha segítenél, azt nagyon de nagyon megköszönném :D 
 
 
Cím: Háromszög DxDraw
Írta: xerox0224 - 2017. December 26. - 20:43:32



   

      

angleAmount

   
   
      360 8 = 45
       
   
   
      Just play with it and debug it. It is the only way to understand it...
   

[/quote]
 
Ezt küldte, viszont én akárhogy átírom az angleAmount-ot, nem jön ki hatszög. 
Cím: Háromszög DxDraw
Írta: thegergo02 - 2017. December 26. - 20:47:45



   
      Just play with it and debug it. It is the only way to understand it...
   

[/quote]
 
Gondolom 45 fokra állítsd az angleAmountot?
Cím: Háromszög DxDraw
Írta: MakroBox - 2017. December 26. - 20:50:16

local sx, sy = guiGetScreenSize()
local gyok3 = math.sqrt(3)
function drawHatszog(kx, ky, w)
local x, y = kx-w/2, ky-(w/2*gyok3)
local csucsok = {{x, y}, {x+w, y}, {x+w+w/2, y+(w/2*gyok3)}, {x+w, y+(w/2*gyok3)*2}, {x, y+(w/2*gyok3)*2}, {x-w/2, y+(w/2*gyok3)}, {x, y}}
for i=1,6 do
   dxDrawLine(csucsok[1], csucsok[2], csucsok[i+1][1], csucsok[i+1][2], tocolor(255,255,255,255))
end
end
addEventHandler(\'onClientRender\', root, function()
drawHatszog(sx/2, sy/2, 100)
end)

 
Én meg hetedikes vagyok.
Most teszteltem, néhány helyen kicsit pixelesnek tűnik, de ez már a dx hibája.
Szívesen!
 
\"Ys69oNo3R7aLVRCGmMPvMA.png\"
Cím: Háromszög DxDraw
Írta: MakroBox - 2017. December 26. - 20:51:27
Ha esetleg vmit nem értesz, akkor szívesen elmagyarázom.
Cím: Háromszög DxDraw
Írta: thegergo02 - 2017. December 26. - 20:53:32
Idézetet írta: MakroBox date=1514317816


   

local sx, sy = guiGetScreenSize()
local gyok3 = math.sqrt(3)
function drawHatszog(kx, ky, w)
local x, y = kx-w/2, ky-(w/2*gyok3)
local csucsok = {{x, y}, {x+w, y}, {x+w+w/2, y+(w/2*gyok3)}, {x+w, y+(w/2*gyok3)*2}, {x, y+(w/2*gyok3)*2}, {x-w/2, y+(w/2*gyok3)}, {x, y}}
for i=1,6 do
   dxDrawLine(csucsok[1], csucsok[2], csucsok[i+1][1], csucsok[i+1][2], tocolor(255,255,255,255))
end
end
addEventHandler(\'onClientRender\', root, function()
drawHatszog(sx/2, sy/2, 100)
end)

   
      Én meg hetedikes vagyok.
       
   
   
       
   


Az ilyet már vettem 1 éve is (szóval 5.-ben) csak nehezebb átvinni azért kódba :)
 
(Kivéve gyök, de geomteria azt igen)
Cím: Háromszög DxDraw
Írta: MakroBox - 2017. December 26. - 20:55:01
Idézetet írta: thegergo02 date=1514318012


   
      Az ilyet már vettem 1 éve is (szóval 5.-ben) csak nehezebb átvinni azért kódba :)
   


Én is kb. akkor, kellett valamelyik versenyen.
Cím: Háromszög DxDraw
Írta: MakroBox - 2017. December 26. - 20:58:37
@xerox0224 Ebből a kódból szerintem már menni fog az \"elfogyás\". :D
Cím: Háromszög DxDraw
Írta: xerox0224 - 2017. December 26. - 21:01:05
Igen. Nekem ezek a számolások így nem mennek, tudom mi az a gyök, ki tudom számolni a számnak a gyökét. ( pl.: 9 négyzetgyöke 3, mert 3×3 az 9. ), viszont amikor egy kódról van szó, ott valamiért leblokkol az agyam. És 1000 hálám, nagyon köszönöm!
 
 
Cím: Háromszög DxDraw
Írta: thegergo02 - 2017. December 26. - 23:18:43
Írd le a problémát mateknyelven egy papírra és próbáld meg a logikáját átírni programkódba.
Cím: Háromszög DxDraw
Írta: MakroBox - 2017. December 27. - 00:03:35
Idézetet írta: thegergo02 date=1514326723


   
      Írd le a problémát mateknyelven egy papírra és próbáld meg a logikáját átírni programkódba.
   


Pont így csináltam. 
 
Leírtam, mit tudunk. Tudjuk az oldalhosszt (w), a középpontot (O) és hogy egy szabályos 6szögünk van. Azt is tudjuk, hogy O és bármely csúcs távolsága w lesz. O-t és a csúcsokat összekötjük, így 6 db szab. 3szöget kapunk. Aztán ott tudjuk, hogy a magasság az w/2*gyök(3), és ha ezt mindenhova beírjuk, kiegészítjük az ábrát, megvan a feladat..
 
Ezek után már csak egy adott ponthoz viszonyítva kell kiszámolni a többit, és ezt leírni a kódban. (Én a középpontot, O-nak a pozícióját kértem be, abból kiszámoltam a “bal felső” pontot, az lett x és y, majd ahhoz viszonyítva a többi pontot, és ezeket összekötöttem. Így gyakorlatilag egy olyan function-t csináltam, aminek megadod a 6szög középpontját és oldalhosszát, ő cserébe kirajzolja neked azt.)