Based heavily on this great answer by @xunilk, you can create a custom script which allows you select a feature from a point layer and insert the height and width parameters. You can create a script by going to:
Processing Toolbox > Scripts > Tools > Create new script
Then use something like:
##Example=name
##Point_layer=vector point
##Height=number 1
##Width=number 1
from qgis.core import QgsVectorLayer, QgsFeature, QgsPoint, QgsRectangle, QgsGeometry, QgsMapLayerRegistry
point_layer = processing.getObject(Point_layer)
feats = [ feat for feat in point_layer.selectedFeatures() ]
epsg = point_layer.crs().postgisSrid()
uri = "Polygon?crs=epsg:" + str(epsg) + "&field=id:integer&field=x:real&field=y:real&field=point_id:integer""&index=yes"
mem_layer = QgsVectorLayer(uri, 'rectangular_buffer', 'memory')
prov = mem_layer.dataProvider()
for i, feat in enumerate(feats):
point = feat.geometry().asPoint()
new_feat = QgsFeature()
new_feat.setAttributes([i, point[0], point[1], feat.id()])
bbox = feat.geometry().buffer((Width/2), -1).boundingBox()
tmp_feat = bbox.asWktPolygon()
xmin1,ymin1,xmax1,ymax1 = bbox.toRectF().getCoords()
xmin2,ymin2,xmax2,ymax2 = feat.geometry().buffer((Height/2), -1).boundingBox().toRectF().getCoords()
p1 = QgsPoint(xmin1, ymax2)
p2 = QgsPoint(xmax1, ymin2)
new_ext = QgsRectangle(p1,p2)
new_tmp_feat = new_ext.asWktPolygon()
new_feat.setGeometry(QgsGeometry.fromWkt(new_tmp_feat))
prov.addFeatures([new_feat])
QgsMapLayerRegistry.instance().addMapLayer(mem_layer)
Make sure to save it in your /.qgis2/processing/scripts/ directory.
Example:
A simple point which has been added to the area of interest and selected. Then executing the custom script from the Processing Toolbox:

A rectangular buffer is created around the point based on the height and width parameters:

A quick check showing the perimeter (300 = (100 x 2) + (50 x 2)):

You can also use the Measuring Tool to do a quick check for the height and width.
- Then copy the rectangle polygon to your main polygon layer.