社区
GAME,图形处理/多媒体
帖子详情
谁有画五角星的函数????????????分多多的
wh_mimi
2003-10-16 02:27:15
谁有画五角星的函数????????????分多多的
给定一个中心原点,和五角星的大小
...全文
653
7
打赏
收藏
谁有画五角星的函数????????????分多多的
谁有画五角星的函数????????????分多多的 给定一个中心原点,和五角星的大小
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wantsinewy
2004-03-23
打赏
举报
回复
这个行不?
var
trim: array [0..10, 0..1] of Single;
procedure TNForm.InitTrim;
var
i: Integer;
begin
// 生成一个五角星形状的裁剪曲线,注意:要保证裁剪曲线是封闭的
for i := 0 to 10 do
begin
if Odd(i) then
begin
trim[i,0] := 0.5 * cos(36*i*pi/180) + 0.5;
trim[i,1] := 0.5 * sin(36*i*pi/180) + 0.5;
end
else begin
trim[i,0] := 0.25 * cos(36*i*pi/180) + 0.5;
trim[i,1] := 0.25 * sin(36*i*pi/180) + 0.5;
end;
end;
end;
procedure TNForm.FormPaint(Sender: TObject);
begin
gluBeginTrim(nurb);
// 绘制一个分段线性的曲线用于从曲面上裁剪出一个星形形状来
gluPwlCurve(nurb, 11, @trim, 2, GLU_MAP1_TRIM_2);
gluEndTrim(nurb);
end;
zytangzhou
2004-03-18
打赏
举报
回复
up
Hewin
2003-10-25
打赏
举报
回复
unit StarobjectU;
interface
uses Graphics,Types ;
type
TPoint3 =array[0..2] of Tpoint ;
TPoint5 =array[0..4] of Tpoint ;
TFiveStar = class
private
FBitmap: TBitmap;
FRealOFFSet: Double;
FRadius: Integer;
FColor: TColor;
FgraynessColor : Tcolor ;
FContrast: integer;
FBackColor: TColor;
FLongpoints : TPoint5 ;
FShortpoints : TPoint5 ;
FShortR : Double ;
procedure SetColor(const Value: TColor);
procedure SetOFFSet(const Value: integer);
procedure SetRadius(const Value: Integer);
function GetOffset: integer;
procedure SetContrast(const Value: integer);
procedure ChangegraynessColor ;
procedure SetBackColor(const Value: TColor);
function GetRect: TRect;
function GetCanvas: TCanvas;
public
constructor Create;
destructor Destroy; override;
procedure Draw ;
procedure DrawToCanvas(aCanvas:TCanvas;Center:Tpoint);
procedure SaveToFile(Filename:string);
property Canvas : TCanvas Read GetCanvas;
property BackColor : TColor read FBackColor write SetBackColor;
property Radius : Integer read FRadius write SetRadius;
property OFFSet : integer read GetOffset write SetOFFSet;
property Color : TColor read FColor write SetColor;
property Contrast : integer Read FContrast write SetContrast ;
property ClipRect : TRect Read GetRect ;
end;
implementation
uses color;
{ TFiveStar }
{ TFiveStar }
procedure TFiveStar.ChangegraynessColor;
var
aRGB : TRGBColor ;
aLum : integer ;
begin
aRGB := TRGBColor.Create ;
try
aRGB.Color := FColor ;
aLum :=Round(aRGB.Lum*(1+FContrast/240)) ;
if (aLum >240) then
aRGB.Lum :=240
else
if aLum<0 then
aRGB.Lum := 0
else
aRGB.Lum := aLum ;
FgraynessColor := aRGB.Color ;
finally
aRGB.Free ;
end;
end;
constructor TFiveStar.Create;
begin
inherited ;
FBitmap := TBitmap.Create ;
Fbitmap.Width := 100 ;
Fbitmap.Height := 100 ;
Radius := 50 ;
color := clred ;
Contrast := 50;
end;
destructor TFiveStar.Destroy;
begin
FBitmap.Free ;
inherited;
end;
procedure TFiveStar.Draw;
begin
Canvas.Brush.Color := FBackColor ;
Canvas.FillRect(Canvas.ClipRect);
DrawToCanvas(Canvas,Point(FRadius,FRadius));
end;
procedure TFiveStar.DrawToCanvas(aCanvas: TCanvas; Center: Tpoint);
var
i : integer ;
procedure FullColor(aColor:TColor;p1,p2:Tpoint);
var
aps:TPoint3 ;
begin
aps[0] := Center ;
aps[1] := p1 ;
aps[2] := p2 ;
acanvas.Pen.Color := acolor ;
acanvas.Brush.Color := acolor ;
acanvas.Polygon(aps);
end;
begin
for i := 0 to 4 do
begin
FLongpoints[i].Y :=Center.Y+ Round(sin(FRealOFFSet+i*2*pi/5)*FRadius) ;
FLongpoints[i].x :=Center.x+ Round(Cos(FRealOFFSet+i*2*pi/5)*FRadius) ;
FShortpoints[i].Y :=Center.Y+ Round(sin(FRealOFFSet+pi/5+i*2*pi/5)*FShortR) ;
FShortpoints[i].x :=Center.X+ Round(Cos(FRealOFFSet+pi/5+i*2*pi/5)*FShortR) ;
end;
FullColor(FgraynessColor,FLongpoints[0],FShortpoints[0]);
FullColor(FColor,FLongpoints[1],FShortpoints[0]);
FullColor(FgraynessColor,FLongpoints[1],FShortpoints[1]);
FullColor(FColor,FLongpoints[2],FShortpoints[1]);
FullColor(FgraynessColor,FLongpoints[2],FShortpoints[2]);
FullColor(FColor,FLongpoints[3],FShortpoints[2]);
FullColor(FgraynessColor,FLongpoints[3],FShortpoints[3]);
FullColor(FColor,FLongpoints[4],FShortpoints[3]);
FullColor(FgraynessColor,FLongpoints[4],FShortpoints[4]);
FullColor(FColor,FLongpoints[0],FShortpoints[4]);
end;
function TFiveStar.GetCanvas: TCanvas;
begin
Result := FBitmap.canvas ;
end;
function TFiveStar.GetOffset: integer;
begin
Result :=Round(180*FRealOFFSet/pi)
end;
function TFiveStar.GetRect: TRect;
begin
Result := Rect(0,0,2*FRadius,2*FRadius);
end;
procedure TFiveStar.SaveToFile(Filename: string);
begin
FBitmap.SaveToFile(filename);
end;
procedure TFiveStar.SetBackColor(const Value: TColor);
begin
FBackColor := Value;
end;
procedure TFiveStar.SetColor(const Value: TColor);
begin
FColor := Value;
ChangegraynessColor ;
end;
procedure TFiveStar.SetContrast(const Value: integer);
begin
FContrast := Value ;
ChangegraynessColor ;
end;
procedure TFiveStar.SetOFFSet(const Value: integer);
begin
FRealOFFSet := (Value mod 360)*pi/180 ;
end;
procedure TFiveStar.SetRadius(const Value: Integer);
begin
if FRadius = Value then Exit ;
FRadius := Value;
FShortR := FRadius*(Cos(pi/5))/2 ;
FBitmap.Width := 2*FRadius ;
fbitmap.Height := 2*FRadius ;
end;
end.
其中TRGBColor是我寫的專用來處理顏色的一個類.你可以把ChangegraynessColor方法改一下.
把FColor的R,G,B同時加FContrast得到FgraynessColor
wh_mimi
2003-10-20
打赏
举报
回复
我可以画出这个五角星了,但怎样用指定的颜色填充呢,我现在得到了五个顶点的坐标,上面的几位老大有例子的话发给我好了, wh_mimi@hotmail.com
sixgj
2003-10-16
打赏
举报
回复
一定需要函数画么?
hbqinlei
2003-10-16
打赏
举报
回复
我有个与这相关的例子,要的话我给你发过去!
zytangzhou
2003-10-16
打赏
举报
回复
这好像很简单的呀!用函数就能画出来了!只要自己有时间算一下就可以了!实在不行我帮你写函数!
python
画
五角星
代码_Python如何使用27行代码绘制星星图
Python如何使用27行代码绘制星星图,代码,如何使用,星星,满天星,效果Python如何使用27行代码绘制星星图易采站长站,站长之家为您整理了Python如何使用27行代码绘制星星图的相关内容。每一个孩子都像星空中的一颗星星,散发着自己所特有的光芒照亮着整个夜空。今天就带大家用27行Python代码绘制一幅满天星吧。全局设置在绘制满天星的过程中要运用到turtle工具,它是Python的标准库...
python用turtle
画
五角星
_使用turtle绘制
五角星
、
分
形树
本文实例为大家
分
享了使用turtle绘制
五角星
和
分
形树的具体代码,供大家参考,具体内容如下turtle 库与之前程序的区别:没有显示的input()与output()没有赋值语句大部
分
语句为.()的形式表示使用中的方法()调用
函数
库中的
函数
()形状绘制
函数
:turtle.forward(distance)
画
笔向前移动distance距离turtle.backward(distance)
画
笔向后移动...
python
画
五角星
为什么144度_使用turtle绘制
五角星
、
分
形树
本文实例为大家
分
享了使用turtle绘制
五角星
和
分
形树的具体代码,供大家参考,具体内容如下turtle 库与之前程序的区别:没有显示的input()与output()没有赋值语句大部
分
语句为.()的形式表示使用中的方法()调用
函数
库中的
函数
()形状绘制
函数
:turtle.forward(distance)
画
笔向前移动distance距离turtle.backward(distance)
画
笔向后移动...
pythonturtle简易绘图
五角星
_使用turtle绘制
五角星
、
分
形树
导读热词本文实例为大家
分
享了使用turtle绘制
五角星
和
分
形树的具体代码,供大家参考,具体内容如下turtle 库与之前程序的区别:没有显示的input()与output()没有赋值语句大部
分
语句为.()的形式表示使用中的方法()调用
函数
库中的
函数
()形状绘制
函数
:turtle.forward(distance)
画
笔向前移动distance距离turtle.backward(distance)
画
笔...
画
星星js
代码 JavaScript部
分
这次的代码直接从js开始,首先我们先写一个for循环,然后在for循环里面嵌套一个for循环在第二个for循环里面输出一个星星,然后在第一个for循环中输出一个换行,实现随着行数的增加每一行都会比上一行多一个
五角星
<script> //三角形的---
五角星
----随着行数的增加,每一行都会比上一行多一个
五角星
// 提示:document.write("★");换行: document.write("<br...
GAME,图形处理/多媒体
1,183
社区成员
14,336
社区内容
发帖
与我相关
我的任务
GAME,图形处理/多媒体
Delphi GAME,图形处理/多媒体
复制链接
扫一扫
分享
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章