Implement dimension
This commit is contained in:
parent
be00496581
commit
c54e9ff3cb
3 changed files with 106 additions and 0 deletions
52
src/Components/SVG/Elements/Dimension.tsx
Normal file
52
src/Components/SVG/Elements/Dimension.tsx
Normal file
|
@ -0,0 +1,52 @@
|
|||
import * as React from 'react';
|
||||
|
||||
interface IDimensionProps {
|
||||
id: string;
|
||||
xStart: number;
|
||||
xEnd: number;
|
||||
y: number;
|
||||
text: string;
|
||||
strokeWidth: number;
|
||||
}
|
||||
|
||||
export class Dimension extends React.Component<IDimensionProps> {
|
||||
public render() {
|
||||
const style = {
|
||||
stroke: 'black'
|
||||
} as React.CSSProperties;
|
||||
return (
|
||||
<g key={this.props.id}>
|
||||
<line
|
||||
x1={this.props.xStart}
|
||||
y1={this.props.y - 4 * this.props.strokeWidth}
|
||||
x2={this.props.xStart}
|
||||
y2={this.props.y + 4 * this.props.strokeWidth}
|
||||
strokeWidth={this.props.strokeWidth}
|
||||
style={style}
|
||||
/>
|
||||
<line
|
||||
x1={this.props.xStart}
|
||||
y1={this.props.y}
|
||||
x2={this.props.xEnd}
|
||||
y2={this.props.y}
|
||||
strokeWidth={this.props.strokeWidth}
|
||||
style={style}
|
||||
/>
|
||||
<line
|
||||
x1={this.props.xEnd}
|
||||
y1={this.props.y - 4 * this.props.strokeWidth}
|
||||
x2={this.props.xEnd}
|
||||
y2={this.props.y + 4 * this.props.strokeWidth}
|
||||
strokeWidth={this.props.strokeWidth}
|
||||
style={style}
|
||||
/>
|
||||
<text
|
||||
x={(this.props.xStart + this.props.xEnd) / 2}
|
||||
y={this.props.y}
|
||||
>
|
||||
{this.props.text}
|
||||
</text>
|
||||
</g>
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue