Sign in to follow this  
ilnaz

Create Diagram or Graph

Recommended Posts

 

                  Author and editor of Ilnaz Isangulov                      

DxCreateDiagram                                                                                                                               Client-only function

Draws an diargam on the screen for a single frame. In order for the diagram to stay visible continuously, you need to call this function with the same parameters on each frame update (see onClientRender).

Syntax

bool dxCreateDiagram (float N, float posX, float posY, float cleanWidth, int color = tocolor(255,255,255,255), float scaleXY = 1, bool postGUI = false)

Required Arguments

  • N: changing parameter, for example speed
  • posX: the absolute X coordinate of the top left corner of the image
  • posY: the absolute Y coordinate of the top left corner of the image
  • cleanWidth: the width at which it will be cleaned and updated

Optional Arguments

  • color: Tints the image with a value produced by tocolor or hexadecimal number in format: 0xAARRGGBB (RR = red, GG = green, BB = blue, AA = alpha).
  • postGUI: A bool representing whether the image should be drawn on top of or behind any ingame GUI (rendered by CEGUI).

Example

Example of a pendulum swinging from the top of the screen, made using dxDrawImage.

local screenWidth,screenHeight = guiGetScreenSize()  -- Get screen resolution.

function renderDisplay ( )
	dxCreateDiagram ( math.random ( 0, 200 ), 0, screenHeight / , , tocolor ( 255, 0, 255, 255 ) , 1, false )
end
addEventHandler("onClientRender", root, renderDisplay)  -- Keep everything visible with onClientRender.

                  Author and editor of Ilnaz Isangulov                       

This is required in the code!  
local dataTable = {}
local zOld = 0

function dxCreateDiagram(N,x,y,cleanSize,color,size,gui)
    local _,h = guiGetScreenSize()
    local x = x or 0
    local y = y or h/2
    local N = N or 0
    local cleanSize = cleanSize or h/2
    local color = color or tocolor(255, 255, 255, 255)
    local size = size or 1
    local gui = gui or false
    local izmen = (N-zOld)

    table.insert( dataTable, izmen)

    for i, z in pairs(dataTable) do
        local x3 = dataTable[i+1] or 1
        local x2 = dataTable[i] or 1
        if i >= cleanSize then
            for f,_ in pairs(dataTable) do
                table.remove(dataTable, f)
            end
        end
         dxDrawLine(x+(i-1), y+1-x2, x+i, y+1-x3, color,size,gui)
    end
end

                  Author and editor of Ilnaz Isangulov                       

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.