Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /************************
- * Author: Nemeth Balint
- * Last Mod: 2020.10.04
- * name: amgry birbs
- ***********************/
- #include <stdio.h>
- #include <math.h>
- #define gravity 9.81 // m/s2
- #define PI 3.141592654
- #define rMadar 0.1 // m
- #define rMalac 0.1 // m
- #define hMadar 3 //m
- #define hMalac 7 // m
- double palya(int x, double alfa, int v0);
- double Ytransformer(double input);
- int Xtransformer(int input);
- void background(FILE *fp);
- int main() {
- FILE *fp;
- fp = fopen("angry.svg","w");
- //FILE
- if (fp != NULL){
- int distanceSTART = 30;
- int difference = hMalac-hMadar;
- double distanceEND, posY;
- //FIRST LINE
- fprintf(fp, "<svg width=\"%d\" height=\"%d\" xmlns=\"http://www.w3.org/2000/svg\" "
- "version=\"1.1\">\n", 850, 250);
- //BACKGROUND
- background(fp);
- //MAIN
- printf("Talalthoz szukseges ertekek: \n");
- for(int v0 = 10; v0 <= 30; v0++) {
- for (int alfa = 0; alfa <= 60; alfa += 5){
- posY = palya(distanceSTART, alfa/(180/PI), v0);
- distanceEND = sqrt(pow(posY-difference,2));
- if(distanceEND < (rMadar + rMalac)){
- printf("Kezdo sebesseg: %d m/s || Szog: %d fok \n", v0, alfa);
- for(int posX = 0; posX <= 30; posX++){
- posY = palya(posX, alfa/(180/PI), v0);
- fprintf(fp, " <circle cx=\"%d\" cy=\"%lf\" r=\"%d\" "
- "stroke=\"black\" fill=\"black\" />"
- "\n", Xtransformer(posX), Ytransformer(posY+hMadar), 1);
- }
- }
- }
- }
- //LAST LINE
- fprintf(fp, "</svg>");
- //CLOSE THE FILE
- fclose(fp);
- }
- else {
- perror("A fajl letrehozasa sikertelen");
- }
- return 0;
- }
- double palya(int x, double alfa, int v0){
- //x szerinti pálya y
- double posY = x*tan(alfa) - (gravity* pow(x,2))/(2*pow(v0,2)*pow(cos(alfa),2));
- return posY;
- }
- void background(FILE *fp){
- fprintf(fp, " <rect width=\"850\" height=\"225\" fill=\"lightblue\"/>\n"); //háttér
- fprintf(fp, " <circle cx=\"0\" cy=\"0\" r=\"40\" fill=\"yellow\"/>\n"); //nap
- fprintf(fp, " <rect y=\"230\" width=\"850\" height=\"20\" fill=\"#5a2800\"/>\n"); //föld
- fprintf(fp, " <rect y=\"225\" width=\"850\" height=\"5\" fill=\"green\"/>\n"); //fű
- fprintf(fp, " <circle cx=\"%d\" cy=\"%lf\" r=\"%lf\" stroke=\"green\""
- " fill=\"green\" />\n", Xtransformer(30), Ytransformer(hMalac), rMalac*25); //malac
- fprintf(fp, " <circle cx=\"%d\" cy=\"%lf\" r=\"%lf\" stroke=\"red\" "
- "fill=\"red\" />\n", 50, Ytransformer(hMadar), rMadar*25); //madár
- }
- //Y COORD pozícionálás
- double Ytransformer(double input){
- int sizeMultiplier = 25;
- return input*sizeMultiplier*(-1)+10*sizeMultiplier;
- }
- //X COORD pozícionálás
- int Xtransformer(int input){
- int sizeMultiplier = 25;
- int shiftR = 50;
- return input*sizeMultiplier + shiftR;
- }
Add Comment
Please, Sign In to add comment