CoolFace
Datasetpublic

hschumann2/TempleOS-Source-Code

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes838downloads
SpanBridge.txt82 linesDownload Raw Back to Span
1 2#define STRENGTH_SCALE  1.5e73#define SPRING_SCALE    6.0e64#define COST_SCALE      375.05#define MASS_RADIUS     3.06#define MASS_MASS       10.07#define WIRE_PERCENT    0.998 9#define RIVER_BANK_COLS 510#define SKY_LINES       4011 12#define FIXED_X1        ((RIVER_BANK_COLS-1)*FONT_WIDTH)13#define FIXED_X2        ((RIVER_BANK_COLS-4)*FONT_WIDTH)14#define FIXED_X3        (TEXT_COLS*FONT_WIDTH>>1)15#define FIXED_Y1        ((SKY_LINES+1)*FONT_HEIGHT)16#define FIXED_Y2        ((SKY_LINES+5)*FONT_HEIGHT)17#define FIXED_Y3        ((TEXT_ROWS-8)*FONT_HEIGHT)18 19#define LOAD_WEIGHTS    820 21U0 SpanBridge1Init(CMathODE *)22{23  I64 i;24 25  MyMass *tmpm;26  tmpm=PlaceMass(GR_WIDTH-FIXED_X1,FIXED_Y1);27  tmpm->flags|=MSF_FIXED;28  tmpm=PlaceMass(GR_WIDTH-FIXED_X2,FIXED_Y1);29  tmpm->flags|=MSF_FIXED;30  tmpm=PlaceMass(GR_WIDTH-FIXED_X1,FIXED_Y2);31  tmpm->flags|=MSF_FIXED;32  tmpm=PlaceMass(FIXED_X1,FIXED_Y1);33  tmpm->flags|=MSF_FIXED;34  tmpm=PlaceMass(FIXED_X2,FIXED_Y1);35  tmpm->flags|=MSF_FIXED;36  tmpm=PlaceMass(FIXED_X1,FIXED_Y2);37  tmpm->flags|=MSF_FIXED;38  tmpm=PlaceMass(FIXED_X3,FIXED_Y3);39  tmpm->flags|=MSF_FIXED;40 41  for (i=0;i<LOAD_WEIGHTS;i++) {42    tmpm=PlaceMass(FIXED_X1+(i+1)*(GR_WIDTH-2*FIXED_X1)/(LOAD_WEIGHTS+1),43          FIXED_Y1);44    tmpm->load_t=(i+1.0)/LOAD_WEIGHTS;45    tmpm->color=RED;46  }47 48  DocClear;49  "$BG,LTCYAN$%h*c",SKY_LINES,'\n';50  for (i=0;i<10;i++) {51    "$BG,BROWN$%h*c",RIVER_BANK_COLS,CH_SPACE;52    "$BG,LTCYAN$%h*c",TEXT_COLS-2*RIVER_BANK_COLS,CH_SPACE;53    "$BG,BROWN$%h*c\n",RIVER_BANK_COLS,CH_SPACE;54  }55  for (i=0;i<5;i++)  {56    "$BG,BROWN$%h*c",RIVER_BANK_COLS+i,CH_SPACE;57    "$BG,BLUE$%h*c",TEXT_COLS/2-RIVER_BANK_COLS-2*i,CH_SPACE;58    "$BG,BROWN$%h*c",2*i,CH_SPACE;59    "$BG,BLUE$%h*c",TEXT_COLS/2-RIVER_BANK_COLS-2*i,CH_SPACE;60    "$BG,BROWN$%h*c\n",RIVER_BANK_COLS+i,CH_SPACE;61  }62}63 64U0 AdjustLoads(CMathODE *ode)65{66  MyMass *tmpm=ode->next_mass;67  F64 d,tt=SpanTime/10.0;68  while (tmpm!=&ode->next_mass) {69    if (tmpm->load_t) {70      if (tt) {71        d=Abs(Sin(tmpm->load_t*pi+tt)); //0.0<=d<=1.072        tmpm->mass=100.0*Sqr(Sqr(d+1.0));73        tmpm->radius=7.0*d+2.0;74      } else {75        tmpm->mass=MASS_MASS;76        tmpm->radius=MASS_RADIUS;77      }78    }79    tmpm=tmpm->next;80  }81}82