{"id":19673708,"url":"https://github.com/besnik/fractals","last_synced_at":"2025-02-27T05:23:32.873Z","repository":{"id":3591719,"uuid":"4655476","full_name":"besnik/fractals","owner":"besnik","description":"Fractals mainly implemented using javascript and html5 canvas. Examples of depth-first-traversal and breadth-first-traversal of the graph. Object oriented design. ","archived":false,"fork":false,"pushed_at":"2015-07-29T07:29:24.000Z","size":180,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-10T04:12:03.695Z","etag":null,"topics":["calculations","depth","fractals","html5-canvas","javascript","matrix","rotation","traversal","tree","vector"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/besnik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-06-13T20:07:21.000Z","updated_at":"2017-03-09T18:30:01.000Z","dependencies_parsed_at":"2022-08-28T21:21:00.276Z","dependency_job_id":null,"html_url":"https://github.com/besnik/fractals","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/besnik%2Ffractals","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/besnik%2Ffractals/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/besnik%2Ffractals/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/besnik%2Ffractals/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/besnik","download_url":"https://codeload.github.com/besnik/fractals/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240982734,"owners_count":19888565,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calculations","depth","fractals","html5-canvas","javascript","matrix","rotation","traversal","tree","vector"],"created_at":"2024-11-11T17:16:05.181Z","updated_at":"2025-02-27T05:23:32.853Z","avatar_url":"https://github.com/besnik.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Fractals\n========\n\nThis projects aims to implement and investigate trees/graphs/fractals. \n\nImplementation\n==============\n\nCurrently all code is done using javascript with help of jQuery library. Rendering is done using HTML5 and Canvas element.\n\nPrograms are implemented using object oriented designs and a variation of MVC pattern to decouple model from view layer.\n\n![Multiple tree fractals](https://raw.githubusercontent.com/wiki/besnik/fractals/images/tree-fractal.png)\n\nExamples\n========\n * tree_html5_canvas: contains basic implementation of binary tree fractal using javascript and html5 canvas.\n * tree_fractal_forest: same as above plus added generator to create random fractal configurations\n\nLearning Source\n===============\n\nThe sources contains couple of interesting points one can learn. Programs are not simple and clean design with aim to decouple components allowed to design simple and clean classes.\n\nSources shows:\n * HTML 5 Canvas manipulation and drawing\n * Vector, Matrix, Rotations, etc\n * Losely coupled object oriented design in javascript\n \nCalculation\n===========\nProgram uses basic arithmetic operations, vector and matrix multiplication and calculation of rotation matrix (rotation of vector around base).\n\nProgram uses depth-first-search of the graph (tree).\n\n![Fractal Tree Forest](https://raw.githubusercontent.com/wiki/besnik/fractals/images/tree-forest.png)\n\nImplementation\n==============\nImplementation is done using object oriented design. All services are separated. Here we fully make use of dynamic language like javascript when passing config/context between services. Sometimes there is no need to create dedicated DTOs for satisfy interface but use existing DTOs/services. For target service this is transparent thanks to dynamic behaviour of the runtime.\n\nRecursion (internally using stack of the called functions) is used to traverse tree (in depth first order) and calculate+draw branches.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbesnik%2Ffractals","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbesnik%2Ffractals","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbesnik%2Ffractals/lists"}