You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET如何用e.Graphics绘制起始坐标110,110的15*15五角星

五角星绘制位置调整方案

你当前的代码生成的五角星坐标都是以画布左上角(0,0)为基准生成的,要移动到指定位置只需要给所有点统一加坐标偏移即可,以下是两种常见场景的调整方案:

场景1:x=110、y=110为五角星的左上角位置

也就是原来左上角对齐(0,0)的五角星,整体移动到左上角对齐(110,110),调整后的代码如下:

' Make the points for a star.
Dim pts(4) As Point
Dim cx As Integer = 15 \ 2
Dim cy As Integer = 15 \ 2
' 新增偏移量配置
Dim offsetX As Integer = 110
Dim offsetY As Integer = 110
Dim theta As Double = -Math.PI / 2
Dim dtheta As Double = Math.PI * 0.8
For i As Integer = 0 To 4
    ' 坐标计算后加上偏移量
    pts(i).X = CInt(cx + cx * Math.Cos(theta)) + offsetX
    pts(i).Y = CInt(cy + cy * Math.Sin(theta)) + offsetY
    theta += dtheta
Next i
e.Graphics.FillPolygon(Brushes.Black, pts)

场景2:x=110、y=110为五角星的中心位置

原代码中cx、cy本身就是五角星的中心坐标,直接修改这两个变量的赋值即可:

' Make the points for a star.
Dim pts(4) As Point
' 直接把中心设置为目标坐标
Dim cx As Integer = 110
Dim cy As Integer = 110
Dim theta As Double = -Math.PI / 2
Dim dtheta As Double = Math.PI * 0.8
For i As Integer = 0 To 4
    pts(i).X = CInt(cx + (15\2) * Math.Cos(theta))
    pts(i).Y = CInt(cy + (15\2) * Math.Sin(theta))
    theta += dtheta
Next i
e.Graphics.FillPolygon(Brushes.Black, pts)

两种方案都保留了五角星15×15的尺寸,不会改变原有图形大小。

内容的提问来源于stack exchange,提问作者Andy Andromeda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 22:24:01