0
나는 결국 애니메이션이 될 룰렛 휠에서 일하고 있습니다. 이전에는 주머니에있는 숫자가 나타났습니다. 많은 변경을 한 후에 더 이상 나타나지 않았습니다. 나는 잠시 동안 코드를 살펴 봤다.내 텍스트는 어디에 있습니까?
수면 부족과 초보자 수준의 노하우로 인해 놓친 것 같아.
#include <stdio.h>
#include <stdlib.h>
#include <gd.h>
#include <math.h>
#define USE_GLOBAL_COLORMAP 1
#define USE_LOCAL_COLORMAP 0
#define LOOP_ANIMATION_FOREVER 1
#define DO_NOT_LOOP_ANIMATION 0
#define AUTO_FRAME_DISPOSAL 1
#define ANIMATION_DELAY 1 /* in milliseconds */
#define IMAGE_WIDTH 500
#define IMAGE_HEIGHT 500
#define CENTERX IMAGE_WIDTH /2
#define CENTERY IMAGE_WIDTH /2
#define WHEEL_DIAMETER IMAGE_WIDTH - 20
#define INSIDE_COVER_DIAMETER WHEEL_DIAMETER - 80
#define MAX_FRAMES_COUNT 100
#define MOVEMENT_PER_FRAME 5
int main(void)
{
gdImagePtr Roulette = gdImageCreate (IMAGE_WIDTH, IMAGE_HEIGHT);
//FILE *animatedGIF;
FILE *jpgImageFile = NULL;
int red, black, green, gold, silver, white, trim;
int frameCount, frameImage;
double degreesToRadiansMultiplier = 0.0174532925;
char *pocketNumbers[] = { "32", "15", "19", "4", "21", "2", "25", "17", "34",
"6", "27", "13", "36", "11", "30", "8", "23", "10",
"5", "24", "16", "33", "1", "20", "14", "31", "9",
"22", "18", "29", "7", "28", "12", "35", "3", "26", "0" };
int sliceCounter = 0;
int sliceStartingAngle = 0;
int sliceEndingAngle = 0;
int sliceAngleIncrement = 9;
int textPositionAngle = 367;
int textRotationAngle = 270;
int textPositionX, textPositionY;
int drawingColor;
frameImage = gdImageCreate(IMAGE_WIDTH, IMAGE_HEIGHT);
gdImageColorAllocate(Roulette, 34, 139, 34);
red = gdImageColorAllocate(Roulette, 204, 0, 0);
white = gdImageColorAllocate(Roulette, 255, 255, 255);
green = gdImageColorAllocate(Roulette, 0, 102, 0);
gold = gdImageColorAllocate(Roulette, 215, 215, 0);
silver = gdImageColorAllocate(Roulette, 192, 192, 192);
black = gdImageColorAllocate(Roulette, 0, 0, 0);
trim = gdImageColorAllocate (Roulette, 102, 51, 0);
gdImageSetThickness(Roulette, 4);
gdImageFilledArc(Roulette, CENTERX, CENTERY, 450, 450, 0, 360, trim, gdArc);
do
{
sliceStartingAngle = sliceEndingAngle;
sliceEndingAngle = sliceStartingAngle + sliceAngleIncrement;
textRotationAngle -= sliceAngleIncrement;
textPositionAngle -= sliceAngleIncrement;
if (sliceCounter == 36)
{
drawingColor = green;
sliceEndingAngle += 1;
textPositionAngle -= 3;
}
else if ((sliceCounter % 2) == 0)
{
drawingColor = red;
textRotationAngle += 2;
}
else
{
drawingColor = black;
sliceEndingAngle += 1;
textPositionAngle -= 1;
textRotationAngle -= 1;
}
if ((sliceCounter % 5) == 0) sliceEndingAngle += 1;
if ((sliceCounter % 7) == 6) { textPositionAngle -= 1; textRotationAngle -= 8; }
if ((sliceCounter % 13) == 12) textPositionAngle -= 1;
textPositionX = (cos(textPositionAngle * degreesToRadiansMultiplier) * (WHEEL_DIAMETER/2.25)) + CENTERX;
textPositionY = CENTERY - (sin(textPositionAngle * degreesToRadiansMultiplier) * (WHEEL_DIAMETER/2.25));
gdImageFilledArc(Roulette, CENTERX, CENTERY, WHEEL_DIAMETER, WHEEL_DIAMETER, sliceStartingAngle, sliceEndingAngle, drawingColor, gdArc);
gdImageStringFT(Roulette, NULL, white, "Vera.ttf", 14, textRotationAngle * degreesToRadiansMultiplier, textPositionX, textPositionY, pocketNumbers[ sliceCounter ]);
} while (++sliceCounter < 37);
gdImageFilledEllipse(Roulette, CENTERX, CENTERY, INSIDE_COVER_DIAMETER, INSIDE_COVER_DIAMETER, white);
//gdImageFilledArc(Roulette, CENTERX, CENTERY, WHEEL_DIAMETER, WHEEL_DIAMETER, sliceStartingAngle, sliceEndingAngle, gold, gdArc);
jpgImageFile = fopen("RouletteImage.jpg", "wb");
gdImageJpeg(Roulette, jpgImageFile, -1);
fclose(jpgImageFile);
gdImageDestroy(Roulette);
}
감사합니다 :) (아와 유럽 룰렛 휠)