迎国庆,绘国旗(高分)。

a854468521 2010-09-15 07:09:49
国旗法规定:
国旗之通用尺度定为如下五种,各界酌情选用:
甲、长288公分,高192公分。
乙、长240公分,高160公分。
丙、长192公分,高128公分。
丁、长144公分,高96公分。
戊、长96公分,高64公分。

国旗制作方法全文:
国旗制法说明
(1949年9月28日中国人民政治协商会议第一届全体会议主席团公布)
国旗的形状、颜色两面相同,旗上五星两面相对。为便利计,
本件仅以旗杆在左之一面为说明之标准。对于旗杆在右之一面,凡本件所称左均应改右,所称右均应改左。
(一)旗面为红色,长方形,其长与高为三与二之比,旗面左上方缀黄色五角星五颗。
一星较大,其外接圆直径为旗高十分之三,居左;四星较小,其外接圆直径为旗高十分之一,环拱于大星之右。
旗杆套为白色。
(二)五星之位置与画法如下:
甲、为便于确定五星之位置,先将旗面对分为四个相等的长方形,
将左上方之长方形上下划为十等分,左右划为十五等分。
乙、大五角星的中心点,在该长方形上五下五、左五右十之处。
其画法为:以此点为圆心,以三等分为半径作一圆。在此圆周上,定出五个等距离的点,其一点须位于圆之正上方。
然后将此五点中各相隔的两点相联,使各成一直线。此五直线所构成之外轮廓线,即为所需之大五角星。
五角星之一个角尖正向上方。
丙、四颗小五角星的中心点,第一点在该长方形上二下八、左十右五之处,
第二点在上四下六、左十二右三之处,第三点在上七下三、左十二右三之处,
第四点在上九下一、左十右五之处。其画法为:以以上四点为圆心,各以一等分为半径,分别作四个圆。
在每个圆上各定出五个等距离的点,其中均须各有一点位于大五角星中心点与以上四个圆心的各联结线上。
然后用构成大五角星的同样方法,构成小五角星。此四颗小五角星均各有一个角尖正对大五角星的中心点。
(三)国旗之通用尺度定为如下五种,各界酌情选用:
甲、长288公分,高192公分。
乙、长240公分,高160公分。
丙、长192公分,高128公分。
丁、长144公分,高96公分。
戊、长96公分,高64公分。
绘制要求:

1:使用GDI+;
2:布质感纹理(参考);



3:迎风飘动。(鄙人愚钝,未实现)。
最终效果(参考)








...全文
321 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
oo渣渣oo 2010-09-27
  • 打赏
  • 举报
回复
这个要求..........估计我到了春节都还没搞出来.............
wuyi8808 2010-09-27
  • 打赏
  • 举报
回复
ningbupt 2010-09-26
  • 打赏
  • 举报
回复
友情帮顶 ,给lz将帖子顶上去。
beg200710 2010-09-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 q107770540 的回复:]

[/Quote]

学习
feixuyue 2010-09-21
  • 打赏
  • 举报
回复
我觉得先画个静止的,再在vertexshader和pixelshader加个水面纹理,不过好像完全用GDI+.
浩南_哥 2010-09-20
  • 打赏
  • 举报
回复
看国旗,接分
yjk3005218141 2010-09-20
  • 打赏
  • 举报
回复
帮顶,期待高手
terry 2010-09-20
  • 打赏
  • 举报
回复
先盯着,接分。
米か臹 2010-09-17
  • 打赏
  • 举报
回复
我来接分
光流溢彩 2010-09-17
  • 打赏
  • 举报
回复
高手云集
xiagirl 2010-09-17
  • 打赏
  • 举报
回复
期待高手..............
Peter200694013 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyazhe 的回复:]
VB.NET code

Public Class FormGQ
Inherits Form
Public Sub New()
Dim pic As New PictureBox
pic.Image = Image.FromStream(New IO.MemoryStream(New Net.WebClient().DownloadDat……
[/Quote]
huangmin3956 2010-09-16
  • 打赏
  • 举报
回复
呵 呵
Ny-6000 2010-09-16
  • 打赏
  • 举报
回复
纯代码搞么。

有空一试。
快溜 2010-09-16
  • 打赏
  • 举报
回复
dylike 2010-09-16
  • 打赏
  • 举报
回复
中秋到了是不是还要用GDI+画个嫦娥?
用纯代码绘制一些动态的东西,只要知道如何绘制就好了,如果真要写,恐怕那会浪费很多时间.
古今多少事 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 a854468521 的回复:]
写的一个画平面五角星的类,请大家斧正.


VB.NET code

Public Class DrawFivePointed
'定义个直线方程的结构
Private Structure LinearElements
Dim A As Double
Dim B As Double
Dim C As Double
……
[/Quote]
慢慢接近了……
a854468521 2010-09-16
  • 打赏
  • 举报
回复
写的一个画平面五角星的类,请大家斧正.


Public Class DrawFivePointed
'定义个直线方程的结构
Private Structure LinearElements
Dim A As Double
Dim B As Double
Dim C As Double
End Structure
'获得直线的方程A,B,C的值
Private Function LinearEquation(ByVal P1 As Point, ByVal P2 As Point) As LinearElements
Dim Line As New LinearElements
Dim a, b, c As Double
Dim x1 As Double = P1.X
Dim y1 As Double = P1.Y
Dim x2 As Double = P2.X
Dim y2 As Double = P2.Y
a = y2 - y1
b = x1 - x2
c = (x2 - x1) * y1 - (y2 - y1) * x1
If b < 0 Then
a = -1 * a
b = -1 * b
c = -1 * c
Else
If b = 0 And a < 0 Then
a = -1 * a
c = -1 * c
End If
End If
Line.A = a
Line.B = b
Line.C = c
Return Line
End Function
'获得两条直线的焦点坐标.
Private Function LineFocus(ByVal Line1 As LinearElements, ByVal Line2 As LinearElements) As Point
Dim Focus As Point
Dim A1, A2, B1, B2, C1, C2, M As Double
A1 = Line1.A
A2 = Line2.A
B1 = Line1.B
B2 = Line2.B
C1 = Line1.C
C2 = Line2.C
M = A1 * B2 - A2 * B1
If M = 0 Then
Focus.X = 0
Focus.Y = 0
Return Focus
End If
Focus.X = (C2 * B1 - C1 * B2) / M
Focus.Y = (C1 * A2 - C2 * A1) / M
Return Focus
End Function
'根据输入的五角星中心坐标、半径、起始角度、颜色绘制一个五角星。
Public Sub DrawFivePointedStar(ByVal CentrePoint As Point, _
ByVal Diameter As Int32, ByVal StarAngle As Double, _
ByVal Dc As Graphics, ByVal [Color] As Color)
Dim po(9) As Point
Dim Zx As Point = CentrePoint

Dim R As Int32 = Diameter / 2
Dim Jl As Int32 = 360 / 5
Dim Hd As Double = System.Math.PI / 180
Dim Qj As Double = StarAngle
For xh As Int16 = 0 To 4
po(xh).Y = System.Math.Sin(Jl * xh * Hd + Qj) * R + Zx.Y
po(xh).X = System.Math.Cos(Jl * xh * Hd + Qj) * R + Zx.X
Next
Dim G As Graphics = Dc
Dim Wzx(4) As LinearElements
Wzx(0) = LinearEquation(po(0), po(2))
Wzx(1) = LinearEquation(po(0), po(3))
Wzx(2) = LinearEquation(po(1), po(3))
Wzx(3) = LinearEquation(po(1), po(4))
Wzx(4) = LinearEquation(po(2), po(4))
po(5) = LineFocus(Wzx(0), Wzx(3))
po(6) = LineFocus(Wzx(0), Wzx(2))
po(7) = LineFocus(Wzx(1), Wzx(3))
po(8) = LineFocus(Wzx(2), Wzx(4))
po(9) = LineFocus(Wzx(1), Wzx(4))
Dim Fpo(9) As Point
Fpo(0) = po(0)
Fpo(1) = po(5)
Fpo(2) = po(1)
Fpo(3) = po(6)
Fpo(4) = po(2)
Fpo(5) = po(8)
Fpo(6) = po(3)
Fpo(7) = po(9)
Fpo(8) = po(4)
Fpo(9) = po(7)
Dim Pen As New Drawing.SolidBrush(Color)
G.FillPolygon(Pen, Fpo)

End Sub

End Class


ckcrystal 2010-09-16
  • 打赏
  • 举报
回复
沒時間寫啦。。。

期待代碼。。。
ximengchang 2010-09-16
  • 打赏
  • 举报
回复
双节快乐
加载更多回复(10)

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧