mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-04-19 17:16:08 +08:00
126 lines
3.3 KiB
Markdown
126 lines
3.3 KiB
Markdown
# g-line 标签 API 文档
|
||
|
||
本文档由 `DeepSeek R1` 模型生成并微调。
|
||
|
||
---
|
||
|
||
```mermaid
|
||
graph LR
|
||
LineProps --> GraphicBaseProps --> BaseProps
|
||
|
||
click GraphicBaseProps "./GraphicBaseProps"
|
||
click BaseProps "./BaseProps"
|
||
```
|
||
|
||
---
|
||
|
||
## 接口定义
|
||
|
||
```typescript
|
||
interface LineProps extends GraphicBaseProps {
|
||
x1?: number; // 起点X坐标
|
||
y1?: number; // 起点Y坐标
|
||
x2?: number; // 终点X坐标
|
||
y2?: number; // 终点Y坐标
|
||
line?: LineParams; // 简写属性 [x1, y1, x2, y2]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 核心属性说明
|
||
|
||
| 属性 | 类型 | 默认值 | 说明 |
|
||
| ---------- | ----------------------------------- | -------- | ---------------------------------------------- |
|
||
| `x1` | `number` | - | 线段起点 X 坐标(单位:像素) |
|
||
| `y1` | `number` | - | 线段起点 Y 坐标(单位:像素) |
|
||
| `x2` | `number` | - | 线段终点 X 坐标(单位:像素) |
|
||
| `y2` | `number` | - | 线段终点 Y 坐标(单位:像素) |
|
||
| `line` | `[x1, y1, x2, y2]` | - | 简写属性:一次性定义起点和终点坐标 |
|
||
| `lineDash` | `number[]` | - | 虚线模式(如 `[5, 3]` 表示 5px 实线+3px 间隙) |
|
||
| `lineCap` | `"butt"` \| `"round"` \| `"square"` | `"butt"` | 线段端点样式 |
|
||
|
||
---
|
||
|
||
## 完整示例集
|
||
|
||
### 示例 1:基础实线
|
||
|
||
```tsx
|
||
// 线段默认就是仅描边,因此不需要单独设置 stroke 属性
|
||
<g-line
|
||
line={[100, 50, 300, 50]} // 起点坐标 (100, 50) 终点坐标 (300, 50)
|
||
strokeStyle="#2d98da" // 蓝色
|
||
strokeWidth={3} // 3px宽度
|
||
/>
|
||
```
|
||
|
||
---
|
||
|
||
### 示例 2:虚线线段
|
||
|
||
```tsx
|
||
<g-line
|
||
line={[50, 150, 400, 150]} // 简写属性定义起点终点
|
||
strokeStyle="#eb3b5a" // 红色
|
||
strokeWidth={2}
|
||
lineDash={[10, 5]} // 10px实线 + 5px间隙
|
||
lineCap="round" // 圆角端点
|
||
/>
|
||
```
|
||
|
||
**效果说明**:
|
||
|
||
- 水平红色虚线
|
||
- 线段端点呈圆形
|
||
|
||
---
|
||
|
||
### 示例 3:动态线段(动画)
|
||
|
||
```tsx
|
||
import { transitioned } from '@user/client-modules';
|
||
|
||
// 创建渐变
|
||
const x2 = transitioned(100, 2000, linear());
|
||
x2.set(400); // 终点横坐标从 100 变到 400
|
||
|
||
return () => (
|
||
<g-line
|
||
line={[100, 300, x2.ref.value, 300]}
|
||
strokeStyle="#10ac84"
|
||
strokeWidth={4}
|
||
/>
|
||
);
|
||
```
|
||
|
||
**动态效果**:
|
||
|
||
- 线段从 100px 位置向右延伸至 400px
|
||
- 2 秒完成动画
|
||
|
||
---
|
||
|
||
## 线段样式对照表
|
||
|
||
| 样式组合 | 效果图示 |
|
||
| --------------------- | ----------------- |
|
||
| `lineCap="butt"` | 平头端点:⎯ |
|
||
| `lineCap="round"` | 圆头端点:⭘―――――⭘ |
|
||
| `lineCap="square"` | 方头端点:▯―――――▯ |
|
||
| `lineDash=[20,5,5,5]` | 复杂虚线:━━⧀┄⧀┄ |
|
||
|
||
---
|
||
|
||
## 注意事项
|
||
|
||
1. **坐标系差异**:
|
||
线段坐标基于父容器坐标系,如需相对定位建议嵌套在`container`中:
|
||
|
||
```tsx
|
||
<container x={100} y={100}>
|
||
{/* 实际坐标为 (100,100)→(150,150) */}
|
||
<g-line line={[0, 0, 50, 50]} />
|
||
</container>
|
||
```
|