重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
画五角星C++源码2008-11-19 17:54先创建一个名为"Pentacle”的类,然后在"Pentacle.h”头文件中添加以下代码:
为瑶海等地区用户提供了全套网页设计制作服务,及瑶海网站建设行业解决方案。主营业务为网站制作、网站建设、瑶海网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
class Pentacle
{
public:
Pentacle();
virtual ~Pentacle();
void SetPosition(POINT position);
void SetRadius(float radius);
void SetAngle(float angle);
void SetColor(COLORREF color);
void Draw(CDC* pDC);
protected:
COLORREF m_Color; //五角星的颜色
POINT m_Position; //五角星中心的位置
float m_fAngle; //五角星旋转的角度
float m_fRadius; //五角星外接圆半径大小
};
在"Pentacle.cpp”执行文件中添加以下代码:
#include "math.h"
Pentacle::Pentacle()
{
m_Color=RGB(253,217,19);
m_fAngle=0;
m_Position.x=600;
m_Position.y=200;
m_fRadius=100;
}
Pentacle::~Pentacle()
{
}
void Pentacle::Draw(CDC *pDC)
{
#define PI 3.1415926535897932384626433832795
pDC-SetViewportOrg(m_Position);
//创建笔和画刷
CPen pen1;
CBrush brush1;
pen1.CreatePen(PS_NULL,1,RGB(0,0,0));
brush1.CreateSolidBrush(m_Color);
pDC-SelectObject(pen1);
pDC-SelectObject(brush1);
POINT pts[10]; //用来存储五角星的十个顶点
float theta1=18+m_fAngle;
float theta2=54+m_fAngle;
for (int i=0;i5;i++) //求最外边的五个顶点的坐标
{
pts[2*i].x=m_fRadius*cos((theta1+i*72)*PI/180);
pts[2*i].y=-m_fRadius*sin((theta1+i*72)*PI/180);
}
for (i=0;i5;i++) //求靠里面边的五个顶点的坐标
{
float r=m_fRadius*sin(18*PI/180)/sin(54*PI/180);
pts[2*i+1].x=r*cos((theta2+i*72)*PI/180);
pts[2*i+1].y=-r*sin((theta2+i*72)*PI/180);
}
pDC-Polygon(pts, 10);
}
void Pentacle::SetColor(COLORREF color)
{
m_Color=color;
}
void Pentacle::SetAngle(float angle)
{
m_fAngle=angle;
}
void Pentacle::SetRadius(float radius)
{
m_fRadius=radius;
}
void Pentacle::SetPosition(POINT position)
{
m_Position.x=position.x;
m_Position.y=position.y;
}
如果你是在html里打的代码,保存文件并双击html文件即可在浏览器中看到效果了。
若是用的其他编程软件,可以找到main函数鼠标右键点run运行。
扩展资料
代码(code)是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。
代码设计的原则包括唯一确定性、标准化和通用性、可扩充性与稳定性、便于识别与记忆、力求短小与格式统一以及容易修改等。 源代码是代码的分支,某种意义上来说,源代码相当于代码。现代程序语言中,源代码可以书籍或磁带形式出现,但最为常用格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码最终目的是将人类可读文本翻译成为计算机可执行的二进制指令,这种过程叫编译,它由通过编译器完成。
供把资料和指示输入自动计算机或制表机的任何符号系统;亦指这种符号的记录(如靠打孔资料卡片或磁带上的受磁点
是说 20060102150405 这个吗,原因大致如下:
可读性高,所见即所得
实现简单,排除二义性(15或3代表时,4代表分,5代表秒,06或2006代表年)
请参考源代码:
187 case '3':
188 return layout[0:i], stdHour12, layout[i+1:]
189
190 case '4':
191 return layout[0:i], stdMinute, layout[i+1:]
192
193 case '5':
194 return layout[0:i], stdSecond, layout[i+1:]
195
1、下载go的zip文件。并且一定要把文件解压到c:\go目录下。
2、配置windows的高级环境变量。包括:GOROOT、GOOS、GOBIN、GOARCH。并且在path变量里面把c:\go\bin加入。以便可以在命令行直接运行go命令。
举例:我的机器:
GOPATH= c:\go;c:\go\src;F:\workspace\goSample01;
GOBIN=c:\go\bin;F:\workspace\goSample01\bin;
其中,c:\go是go的安装路径;
F:\workspace\goSample01是我写的go语言项目的工程目录;
F:\workspace\goSample01\bin是go语言项目的工程目录下的可执行文件路径;
3、在完成环境变量配置后,打开一个命令行窗口,直接输入go,然后回车,看看是否出现go的帮助信息。如果出现,那么go的基本环境就OK了。
注意:这个基本环境不包含开发工具,也不能直接编译带C代码的go程序。
4、(可选)为了支持Import远程包,最好装个gomingw。下载地址:。如果下的是压缩包,请把它解压到C盘。例如,C:\gowin-env。里面有个Console.bat是以后使用go get的环境。举例:有个文件a.go,里面import(
"fmt"
"github.com/astaxie/beedb"
_ "github.com/ziutek/mymysql/godrv"
为了编译该a.go文件,需要启动Console.bat,然后在该命令行窗口,进入c:\go\src目录下,执行go getgithub.com/astaxie/beedb
Go get github.com/ziutek/mymysql/godrv .
Go会自动下载该远程包并编译和安装这些包。
配置goclipse(可选)
(如果不喜欢eclipse开发工具,请跳过这个配置。)
1、下载并安装goclipse插件。Goclipse是go语言for eclipse的插件,下载地址:
2、启动eclipse并创建go项目。然后写个最简单的helloworld.go文件,并运行。代码如下:
packagemainimport"fmt"func main(){ fmt.Printf("hello, world")}
配置gocode(可选)
如果不需要go语法辅助和eclipse里面的(按ALT+/)弹出go语言自动辅助功能,请跳过这个配置。
1、下载gocode的zip文件,解压后放在go的bin目录下。
2、下载并安装Git软件。并且在path里面配置git的执行路径。例如c:\git\bin
3、在命令行执行:go build .\gocode。如果一切正常,那么将会编译生成一个gocode.exe文件在go的bin目录下。如果编译失败,那么就转第4步。
4、如果第3步直接编译gocode源文件成功,那就直接到第5步。否则,就需要通过git下载gocode源文件,然后再编译。在命令行执行:go get -u github.com/nsf/gocode 。就会生成gocode.exe文件。
5、在goclipse插件里面指定gocode的路径。就可以在elcipse里面调用gocode来帮助写编码了。
从开发工具这块看,go语言还不够成熟,开发工具都还不完善,有待改进。
下载go-tour教程源代码(可选)
Google有个在线运行go语言的教程(),很不错。支持在web上直接运行大部分的go程序,想了解这个教程的源代码的朋友可以通过以下方式获取。如果没兴趣,可以跳过这个步骤。
1、下载安装Mercurial软件。
2、在命令行下输入:
hg clone
这个URL是我从google的go-tour源代码的一个clone。作为测试用的。如果把http改成https协议,下载就会失败。搞不懂。
编译带调用C代码的go文件(可选)
1、为了在windows下编译带C代码的go程序,你首先需要下载并安装MinGW或者Cygwin。
2、首选安装MinGW。在安装MinGW之后,记得要把MinGW安装目录\bin路径设置在path环境变量里面,以便能在dos窗口下直接调用gcc。
3、下载一个gowin-env。下载地址:gowin-env。下载后解压到某个目录下,例如:C:\gowin-env. 然后,编辑go-env.bat。配置相关的go参数。例如,我的配置是:
set GOARCH=386
set GOOS=windows
set GOROOT=c:\go
set GOBIN=%GOROOT%\bin
set GOPATH=%GOROOT%;F:\workspace\goSample01;
设置好go-env.bat后,就可以点击Console.bat来启动编译和运行窗口。
4、编写一个带C代码的go程序。例如,testc.go
5、编译
例如:
go build -compiler gccgo test_c.go
运行调用C代码的go文件(可选)
1、testc.go.
创建rand目录,然后在rand里面创建testc.go. 代码如下:
package rand
/*
//
#include stdio.h
*/
import "C"
func PrintHello() {
C.puts(C.CString("Hello, world\n"))
}
2、a.go
在rand下创建a.go.代码如下:
package rand
import "fmt"
func SayHello(name string){
fmt.Println(name)
}
3、test_import.go
在rand的上一级创建test_import.go。代码如下:
package main
import "./rand"
func main(){
rand.SayHello("tom")
rand.PrintHello()
}
4、运行test_import.go
go run test_import.go
在测试其它几个C代码的时候,发现windows版本的cgo还有些编译问题,同样的代码转移到苹果的XCODE下就没有问题。后来终于发现原因了,原来有些例子是unix平台下的,而在windows平台下,方法名和参数需要做调整。
例如:下面代码在windows下编译报一堆错误。
package rand
/*
#include stdlib.h
*/
import "C"
func Random() int {
return int(C.random())
}
func Seed(i int) {
C.srandom(C.uint(i))
}
这里需要把return int(C.random()) 修改为“return int(C.rand())”
C.srandom(C.uint(i))修改为“C.srand(C.uint(i))”编译就OK了。