⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pdfclock.cpp

📁 windows下PDF文档的开发包
💻 CPP
字号:
// $Id: pdfclock.cpp,v 1.12.2.5 2003/12/17 15:45:37 tm Exp $
// A little PDFlib application to draw an analog clock.
//
//

#include <iostream>

#include <time.h>

#if !defined(WIN32) && !defined(MAC)
#include <unistd.h>
#endif

#include "pdflib.hpp"

#define RADIUS		200.0f
#define MARGIN		20.0f

int
main()
{
    try {
	PDFlib		*p;
	float		alpha;
	time_t		timer;
	struct tm	ltime;
	
	// Create a new PDFlib object
	p = new PDFlib();

	// Open new PDF file
	if (p->open_file("pdfclock.pdf") == -1) {
	    cerr << "Error: " << p->get_errmsg() << endl;
	    return 2;
	}

	// This line is required to avoid problems on Japanese systems
	p->set_parameter("hypertextencoding", "host");

	p->set_info("Creator", "pdfclock.cpp");
	p->set_info("Author", "Thomas Merz");
	p->set_info("Title", "PDF clock (C++)");

	p->begin_page((unsigned int) (2 * (RADIUS + MARGIN)),
			  (unsigned int) (2 * (RADIUS + MARGIN)));
	
	p->translate(RADIUS + MARGIN, RADIUS + MARGIN);
	p->setcolor("fillstroke", "rgb", 0, 0, 1, 0);
	p->save();

	// minute strokes
	p->setlinewidth(2);
	for (alpha = 0; alpha < 360; alpha += 6)
	{
	    p->rotate(6);
	    p->moveto(RADIUS, 0);
	    p->lineto((float) (RADIUS-MARGIN/3), 0);
	    p->stroke();
	}

	p->restore();
	p->save();

	// 5 minute strokes
	p->setlinewidth(3);
	for (alpha = 0; alpha < 360; alpha += 30)
	{
	    p->rotate(30);
	    p->moveto(RADIUS, 0);
	    p->lineto(RADIUS-MARGIN, 0);
	    p->stroke();
	}

	time(&timer);
	ltime = *localtime(&timer);

	// draw hour hand
	p->save();
	p->rotate(
		(float)(-((ltime.tm_min/60) + ltime.tm_hour - 3.0) * 30));
	p->moveto(-RADIUS/10, -RADIUS/20);
	p->lineto(RADIUS/2, 0);
	p->lineto(-RADIUS/10, RADIUS/20);
	p->closepath();
	p->fill();
	p->restore();

	// draw minute hand
	p->save();
	p->rotate((float) (-((ltime.tm_sec/60.0) + ltime.tm_min - 15.0) * 6.0));
	p->moveto(-RADIUS/10, -RADIUS/20);
	p->lineto(RADIUS * 0.8, 0);
	p->lineto(-RADIUS/10, RADIUS/20);
	p->closepath();
	p->fill();
	p->restore();

	// draw second hand
	p->setcolor("fillstroke", "rgb", 1, 0, 0, 0);
	p->setlinewidth(2);
	p->save();
	p->rotate((float) -((ltime.tm_sec - 15) * 6));
	p->moveto(-RADIUS/5, 0);
	p->lineto(RADIUS, 0);
	p->stroke();
	p->restore();

	// draw little circle at center
	p->circle(0, 0, (float) RADIUS/30);
	p->fill();

	p->restore();

	p->end_page();

	p->close();
    }
    catch (PDFlib::Exception &ex) {
	cerr << "PDFlib exception occurred in pdfclock sample: " << endl;
	cerr << "[" << ex.get_errnum() << "] " << ex.get_apiname()
	    << ": " << ex.get_errmsg() << endl;
	return 2;
    }

    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -