Esempio n. 1
0
int main(){
   window w( 128, 64, 2 );
   filled_rectangle square(w, 20, 20, 60, 60);
   filled_rectangle square2(w, 10, 10, 80, 15);
   square2.draw();
   square.draw();
   return 0;
}
Esempio n. 2
0
/* Main program: Using the various functions */
int main (void) {
   square1();    /* Calling the square1 function */
   square2(7);   /* Calling the square2 function using 7 as actual
		    parameter corresponding to the formal parameter i */
   printf("The value of square3() is %d\n", square3()); /* Ysing the square3
							   function */
   printf("The value of square4(5) is %d\n", square4(5)); /* Using the square4
		 function with 5 as actual parameter corresponding to i */
   printf("The value of area(3,7) is %d\n", area(3,7)); /* Using the area
                 function with 3, 7 as actual parameters corresponding 
		 to b, h respectively */
}
Esempio n. 3
0
int main(int argc, char const *argv[])
{
	square1();
	square2(7);

    printf("The value of square3() is %d\n", square3());

    printf("The value of square4(5) is %d\n", square4(5));

    printf("The value of area(3, 7) is %d\n", area(3, 7));

	return 0;
}
Esempio n. 4
0
TEST_F(PolygonMergerTest, TwoSquaresTest){
    std::vector<int> square1Points = {0,1,2,3};
    std::vector<int> square2Points = {1,5,6,2};

    std::vector<int> expected = {2,3,0,1,5,6};

    Polygon square1 (square1Points, points);
    Polygon square2 (square2Points, points);

    SimplePolygonMerger merger;
    Polygon p = merger.mergePolygons(square1, square2, points);

    EXPECT_EQ(p, Polygon(expected, points));
}
int main()
{
   Rectangle square1( 1,  100, 100, 3, 4 );
   printRectange( square1 );

   Rectangle square2( 2,  50, 50, 0, 4 );
   printRectange( square2 );

   Rectangle square3( square1 );
   printRectange( square3 );

   square1 = square2;
   printRectange( square1 );

   Rectangle* pFoo = Foo();
   printRectange( *pFoo );

   return 0;
}
Esempio n. 6
0
static void fill_audio(void *udata, Uint8 *stream, int len)
{
    sample_t *samples = (sample_t*)stream;
	audio_t *audio = (audio_t*)udata;
    int num_samples = len / (sizeof(sample_t));
    for(int i = 0; i < num_samples; i++)
    {
        float t = audio->buffer_pos / (float)FREQUENCY;
        int16_t val_l = 0;
        int16_t val_r = 0;
        uint8_t channels[4];
#if 1
        if(audio->sq1.en)
        {
            channels[0] = square1(t, audio);
        }

        if(audio->sq2.en)
        {
            channels[1] = square2(t, audio);
        }

        if(audio->wave.en && audio->wave.power)
        {
            channels[2] = wave(t, audio);
        }
#endif

#if 1
		if (audio->noise.en)
		{
			channels[3] = noise(t, audio);
		}
#endif

        for(int i = 0; i < 4; i++)
        {
            int16_t v = DAC(channels[i]) / 4;
            if(BIT_N(audio->control.r_en, i))
            {
                val_r += v;
            }
            if(BIT_N(audio->control.l_en, i))
            {
                val_l += v;
            }
        }

		samples[i] = (sample_t) { .left = val_l / 4, .right = val_r / 4 };
		audio->buffer_pos = (audio->buffer_pos + 1) % FREQUENCY;
    }
}

static void init_wave_table(audio_t *audio)
{
	const uint8_t wave_default_table[32] =
	{
		0x4, 0x8, 0x0, 0x4, 0x3, 0x4,0xA, 0xA,
		0xD, 0x2, 0x8, 0x7, 0x2, 0x9,0xC, 0x3,
		0x0, 0x6, 0x9, 0x5, 0x9, 0x5,0x0, 0xB,
		0x4, 0x3, 0x8, 0xB, 0xE, 0x2,0xA, 0xD,
	};
	memcpy(audio->wave_table, wave_default_table, sizeof(audio->wave_table));
}

audio_t *audio_init(cpu_state_t *state)
{
	audio_t *out = CALLOC(1, sizeof(audio_t));
	out->state   = state;

	init_wave_table(out);

#if AUDIO
	SDL_AudioSpec wanted;
	/* Set the audio format */
	wanted.freq     = FREQUENCY;
	wanted.format   = AUDIO_S16;
	wanted.channels = NUM_CHANNELS;
	wanted.samples  = NUM_SAMPLES;
	wanted.callback = fill_audio;
	wanted.userdata = out;

	/* Open the audio device, forcing the desired format */
	if ( SDL_OpenAudio(&wanted, NULL) < 0 )
	{
        log_error("Couldn't open audio: %s\n", SDL_GetError());
	}
	SDL_PauseAudio(0);
#endif
	return out;
}
Esempio n. 7
0
// double square2(float value) { return (double)value * value; }
double test3()
{
    double sq = square2(2.0);
    return sq;
}
void TestStelSphericalGeometry::testContains()
{
	Vec3d p0(1,0,0);
	Vec3d p1(1,1,1);
	p1.normalize();

	Vec3d v0;
	Vec3d v1;
	Vec3d v2;
	Vec3d v3;

	// Triangle polygons
	QVERIFY2(triangle.contains(p1), "Triangle contains point failure");
	Vec3d vt(-1, -1, -1);
	vt.normalize();
	QVERIFY2(!triangle.contains(vt), "Triangle not contains point failure");

	foreach(const SphericalCap& h, triangle.getBoundingSphericalCaps())
	{
		QVERIFY(h.contains(p1));
	}

	// polygons-point intersect
	double deg5 = 5.*M_PI/180.;
	double deg2 = 2.*M_PI/180.;
	StelUtils::spheToRect(-deg5, -deg5, v3);
	StelUtils::spheToRect(+deg5, -deg5, v2);
	StelUtils::spheToRect(+deg5, +deg5, v1);
	StelUtils::spheToRect(-deg5, +deg5, v0);
	//qDebug() << v0.toString() << v1.toString() << v2.toString() << v3.toString();
	SphericalConvexPolygon square1(v0, v1, v2, v3);
	QVERIFY(square1.checkValid());
	QVERIFY2(square1.contains(p0), "Square contains point failure");
	QVERIFY2(!square1.contains(p1), "Square not contains point failure");

	// polygons-polygons intersect
	StelUtils::spheToRect(-deg2, -deg2, v3);
	StelUtils::spheToRect(+deg2, -deg2, v2);
	StelUtils::spheToRect(+deg2, +deg2, v1);
	StelUtils::spheToRect(-deg2, +deg2, v0);
	SphericalConvexPolygon square2(v0, v1, v2, v3);
	QVERIFY(square2.checkValid());
	QVERIFY2(square1.contains(square2), "Square contains square failure");
	QVERIFY2(!square2.contains(square1), "Square not contains square failure");
	QVERIFY2(square1.intersects(square2), "Square intersect square failure");
	QVERIFY2(square2.intersects(square1), "Square intersect square failure");

	// Check when the polygons are far appart
	QVERIFY(!square1.intersects(opositeSquare));
	QVERIFY(!square2.intersects(opositeSquare));
	QVERIFY(!holySquare.intersects(opositeSquare));
	QVERIFY(!bigSquare.intersects(opositeSquare));
	QVERIFY(opositeSquare.intersects(opositeSquare));

	// Test the tricky case where 2 polygons intersect without having point within each other
	StelUtils::spheToRect(-deg5, -deg2, v3);
	StelUtils::spheToRect(+deg5, -deg2, v2);
	StelUtils::spheToRect(+deg5, +deg2, v1);
	StelUtils::spheToRect(-deg5, +deg2, v0);
	SphericalConvexPolygon squareHoriz(v0, v1, v2, v3);
	QVERIFY(squareHoriz.checkValid());

	StelUtils::spheToRect(-deg2, -deg5, v3);
	StelUtils::spheToRect(+deg2, -deg5, v2);
	StelUtils::spheToRect(+deg2, +deg5, v1);
	StelUtils::spheToRect(-deg2, +deg5, v0);
	SphericalConvexPolygon squareVerti(v0, v1, v2, v3);
	QVERIFY(squareVerti.checkValid());
	QVERIFY2(!squareHoriz.contains(squareVerti), "Special intersect contains failure");
	QVERIFY2(!squareVerti.contains(squareHoriz), "Special intersect contains failure");
	QVERIFY2(squareHoriz.intersects(squareVerti), "Special intersect failure");
	QVERIFY2(squareVerti.intersects(squareHoriz), "Special intersect failure");
}