Files
Nomi/source/nomi.c

122 lines
2.8 KiB
C

#include <tart.h>
#include <math.h>
#include "nomi.h"
#include <stdlib.h>
#define SPIREL_MOD 0.618055f
struct nomiSpirel {
struct tart_cell selected_cell;
struct tart_cell unselected_cell;
struct tart_vec2 startPos;
struct tart_vec2 size;
struct tart_vec2 endPos;
unsigned char oreantation;
int fibonacci[3];
};
struct nomiMenu {
struct nomiSpirel branches[30];
struct tart_vec2 startPos;
struct tart_vec2 size;
struct tart_vec2 origin;
unsigned char brachIds[30];
};
/*
* This will Init Nomi
*/
void NomiInit();
/*
* This will create the truk of the note.
* */
trunk* CreateTrunk();
/*
* This is a test
* */
void CreaetBranch(trunk* trunk);
/*
* Locate Branch
* */
branch* LocateBranch();
/*
* Draw Branch
*/
void DrawBranch(branch* branch, struct tart_window* w, tart_byte b) {
struct tart_cell cell = NULL_CELL;
cell.display = '*';
struct nomiSpirel spirel;
int SizeOfFile = 600;
char cellChart[] = {'%','*','\\','/','l','&','7','+','=','^',':'};
unsigned int iderations = 0;
struct tart_vec2 pos0 = {
(( 3) * -1)+branch->startPos.x,
(( 0/2) * -1)+branch->startPos.y};
struct tart_vec2 c0 = {
(( 25) * -1)+branch->startPos.x,
((35/2) * -1)+branch->startPos.y}; // controle point 0
struct tart_vec2 c1 = {
(( -10) * -1)+branch->startPos.x,
((35/2) * -1)+branch->startPos.y}; // controle point 1
struct tart_vec2 pos1 = {
(( 3) * -1)+branch->startPos.x,
((10/2) * -1)+branch->startPos.y};
struct tart_vec2 dpos = {0,0};
float count = 0;
while(count < 1) {
// This is the direction that the spirel is oreanted
// 0 = up
// 1 = left
// 2 = down
// 3 = right
iderations++;
cell.display = cellChart[rand_r(&iderations)%11];
dpos = (struct tart_vec2){
(1-count)*((1-count)*((1-count)*pos0.x + count * c0.x) +
count * ((1-count)*c0.x + count*c1.x)) +
count * ((1-count)*((1-count)*c0.x + count * c1.x) +
count * ((1-count)*c1.x + pos1.x)),
(1-count)*((1-count)*((1-count)*pos0.y + count * c0.y) + count *
((1-count)*c0.y + count*c1.y)) +
count *((1-count)*((1-count)*c0.y + count * c1.y) +
count * ((1-count)*c1.y + pos1.y)),
};
tart_draw_cell_position(tart_get_buffer(w, b), cell, dpos);
count += .01f;
}
//for(int i = 0; i < rint((SizeOfFile/10.0f)*SPIREL_MOD); i++) {
//
//}
}
/*
* Create Nomi File
*
* name: the name of the file that will be created.
*/
FILE CreateNomiFile(const char* name);
/*
* Save Nomi File
*
* file: the pointer to the nomi file.
*/
void SaveNomiFile(FILE* file);